jQuery向艾德元素添加事件处理程序

ac1kyiln  于 2022-12-12  发布在  jQuery
关注(0)|答案(2)|浏览(119)

我有一个由jQuery动态生成的表,使用

this.html("<table><tr><td><div>Click Me</div></td></tr></table>");

在表中,我有一些 * div *(为了简单起见,我的示例只显示了一个),我想在其中添加click事件处理程序。我希望保持html干净,并尽可能多地使用jQuery的功能,但由于我正在做一个'eval'类型的事情,我不知道如何做到这一点。
我知道,我可以使用$("div[some attribute selector]").on("click", {}, clickHandler);,但在我的情况下,这是一个好主意吗?

wn9m85ua

wn9m85ua1#

您需要委托事件。为此,只需使用jQuerys on()方法,如下所示:

$(document.body).on('click', 'div', function( event ) {
    // do something
});

参考编号:.delegate().on()
这是什么?几乎所有的事件都做我们称之为“冒泡”的事情。这意味着,如果你点击一个嵌套的元素,你的浏览器会查看是否有任何点击事件处理程序与该节点关联。如果有,它执行它们,然后还询问该元素的父元素是否有任何click-event处理程序。这一直持续到某个处理程序prevents事件不再冒泡,或者我们已经到达document.documentElement(html)。
因此,您应该上面的document.body更改为相对于动态添加的元素最近的**节点。

ubby3x7f

ubby3x7f2#

您可以使用livedelegate来执行此操作

相关问题