javascript-jQuery将事件处理程序添加到已评估的元素
作者:互联网
我有一个由JQuery动态生成的表,使用
this.html("<table><tr><td><div>Click Me</div></td></tr></table>");
在表格中,我有几个div(我的示例仅显示了一个div来简化内容),我想向其中添加click事件处理程序.我想保持html的干净,并尽我所能使用JQuery的功能,但是由于我正在做“评估”类型的事情,所以我不太清楚该怎么做.
我知道,我可以使用$(“ div [某些属性选择器]”).on(“ click”,{},clickHandler);;但对我而言,这是一个好主意吗?
解决方法:
您需要委托事件.为此,只需使用jQuerys on()方法,如下所示:
$(document.body).on('click', 'div', function( event ) {
// do something
});
参考:.delegate(),.on()
那是什么?几乎所有事件都发生了我们所谓的“泡沫”.这意味着,如果单击嵌套元素,则浏览器将查看该节点上是否有关联的单击事件处理程序.如果是这样,它将执行它们,然后还询问该元素的父级是否有任何单击事件处理程序.这一直持续到某个处理程序阻止事件进一步冒泡或我们到达document.documentElement(html).
因此,您应该将上述document.body更改为相对于您动态添加的元素最近的节点.
标签:javascript-events,javascript,jquery 来源: https://codeday.me/bug/20191202/2084907.html