Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery为动态创建的特定元素添加事件侦听器_Javascript_Jquery - Fatal编程技术网

Javascript 使用jquery为动态创建的特定元素添加事件侦听器

Javascript 使用jquery为动态创建的特定元素添加事件侦听器,javascript,jquery,Javascript,Jquery,我正在使用jquery创建动态元素,并尝试为元素绑定侦听器。 通过使用绑定侦听器 $('#div11').on('click',$('#textbox31'),function(e){showPopupImage(e);}); $('#div11').on('click',$('#textbox32'),function(e){alert('hi');}); 函数,它将侦听器添加到子代,即使我指定了要绑定的特定字段 请告诉我处理这种情况的好方法。问题是您没有为on功能指定正确的参数。如果查看J

我正在使用jquery创建动态元素,并尝试为元素绑定侦听器。 通过使用绑定侦听器

$('#div11').on('click',$('#textbox31'),function(e){showPopupImage(e);});
$('#div11').on('click',$('#textbox32'),function(e){alert('hi');});
函数,它将侦听器添加到子代,即使我指定了要绑定的特定字段


请告诉我处理这种情况的好方法。

问题是您没有为
on
功能指定正确的参数。如果查看JQuery文档,您将使用以下函数重载:

.on(事件[,选择器][,数据])

错误指定的零件是
选择器
参数。此参数需要选择器字符串,而不是JQuery objct

以下工作将起作用:

$('#div11').on('click','#textbox31',function(e){showPopupImage(e);});
$('#div11').on('click','#textbox32',function(e){alert('hi');});
请注意,我已将
$('#textbox31')
替换为
'#textbox31'


,您将看到单击事件未应用于
textbox33
textbox34
问题在于您没有为
on
函数指定正确的参数。如果查看JQuery文档,您将使用以下函数重载:

.on(事件[,选择器][,数据])

错误指定的零件是
选择器
参数。此参数需要选择器字符串,而不是JQuery objct

以下工作将起作用:

$('#div11').on('click','#textbox31',function(e){showPopupImage(e);});
$('#div11').on('click','#textbox32',function(e){alert('hi');});
请注意,我已将
$('#textbox31')
替换为
'#textbox31'


,您将看到单击事件未应用于
textbox33
textbox34

尝试:

$('#div11').on('click', '#textbox31',function(e){
        showPopupImage(e);
});
$('#div11').on('click', '#textbox32', function(e) {
  //do something
});

使用可以定义一次函数,它将对任何动态添加的元素执行。

试试看:

$('#div11').on('click', '#textbox31',function(e){
        showPopupImage(e);
});
$('#div11').on('click', '#textbox32', function(e) {
  //do something
});

使用可以定义一次函数,它将对任何动态添加的元素执行。

使用jquery试试这个!那么为什么要标记javaScript?@shadow:javaScript标记是有效的,JQuery是javaScriptlibrary@musefan但它是一个图书馆,不是本地的javascript@shadow:JQuery是用javascript编写的,要使用它,必须编写javascript。问题中包含的代码都是javascript,因此使用jquery将其标记为soTry this是有意义的!那么为什么要标记javaScript?@shadow:javaScript标记是有效的,JQuery是javaScriptlibrary@musefan但它是一个图书馆,不是本地的javascript@shadow:JQuery是用javascript编写的,要使用它,必须编写javascript。问题中包含的代码都是javascript,因此将其标记为javascript是有意义的