编程语言
首页 > 编程语言> > javascript-jQuery将事件处理程序添加到已评估的元素

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