我想将事件监听器附加到动态创建的输入文本或其他对象。 由于对象尚未出现在 DOM 中或对象不可见,因此将事件附加到这些对象会失败。 普通 Javascript 或 JQuery 中有一个正确的方法可以避免这个问题吗?
谢谢
最佳答案
在 vanilla JS 中,您必须将事件监听器添加到文档中,并在单击某些内容时检查目标。
如果您想检查类而不是 id,则必须将 e.target.id
更改为 e.target.className
。
document.addEventListener('click',function(e){
if(e.target && e.target.id == '{ELEMENT_ID}'){
//do something
}
});
如果您使用 jQuery 进行编程,则会容易得多,您可以向主体添加一个单击处理程序,该处理程序会忽略您作为第二个参数输入的元素 id/类之外的所有内容 (ID = #{ELEMENT_ID}
,CLASS = .{ELEMENT_CLASS}
$('body').on('click','#{ELEMENT_ID}',function() {
//do something
})
这里是一个 jQuery 和 vanilla js 示例的 fiddle :https://jsfiddle.net/67m4qr1h/1/
希望这有帮助:)
关于javascript - 将事件监听器附加到动态创建的输入文本上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60729920/