我正在使用 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 ,您会看到点击事件未应用于 textbox33
和 textbox34
关于javascript - 使用 jquery 为动态创建的特定元素添加事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21090235/