javascript - 使用 jquery 为动态创建的特定元素添加事件监听器

标签 javascript jquery

我正在使用 jquery 创建动态元素并尝试为元素绑定(bind)监听器。 通过使用

绑定(bind)监听器
$('#div11').on('click',$('#textbox31'),function(e){showPopupImage(e);});
$('#div11').on('click',$('#textbox32'),function(e){alert('hi');});

功能,即使我指定要绑定(bind)的特定字段,它也会向后代添加监听器。

请给我建议处理我的情况的好方法。

最佳答案

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

.on( events [, selector ] [, data ] )

您指定不正确的部分是 selector 参数。此参数需要一个选择器字符串,而不是 JQuery 对象。

以下将起作用:

$('#div11').on('click','#textbox31',function(e){showPopupImage(e);});
$('#div11').on('click','#textbox32',function(e){alert('hi');});

请注意,我已将 $('#textbox31') 替换为 '#textbox31'

Here is a working example ,您会看到点击事件未应用于 textbox33textbox34

关于javascript - 使用 jquery 为动态创建的特定元素添加事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21090235/

相关文章:

javascript - 如何将格式为 "YYYY-MM-DD hh:mm:ss"的日期转换为 UNIX 时间戳

php - 如何在循环中使用 jQuery UI Accordion

javascript - 停止在 jQuery 中缓存图像

javascript - 使用 jquery 设置 <td> 值

c# - 在 Watin 中调用 Javascript

javascript - 如何在加载下一个之前等待一个javascript加载

javascript - Jasmine:在初始化时设置 Controller 属性, Angular 1.5

javascript - jQuery "or"运算符不适用于 mouseleave?

javascript - 用于更新 mysql 中字段的 Jtable.org 自定义按钮 onclick

javascript - 延迟显示更改为无