从DOM中删除元素是否会影响它们的事件处理程序?

4
如果我从DOM中删除一个带有事件处理程序的元素,并随后在某个地方添加具有相同ID的元素,那么新元素会有处理程序吗?
3个回答

6
不会,因为它将是一个不同的对象。如果您使用了jQuery和live(),则会获得此行为。

1
请注意,live() 并不是 jQuery 的魔法:它只是事件委托的一种应用,可以在没有外部库的情况下完成;为了使其可用,您基本上需要自己编写一个跨浏览器的包装器。 - Christoph

2
不可以,但你可以了解事件委托。主要思想是事件会冒泡到父级DOM元素,因此您可以在更高层次的DOM上附加事件处理程序。您可以注册像click这样的事件,并为此处理程序提供规则,以处理子元素的点击事件。当其子元素被添加或删除时,该处理程序仍将存在,因此无需在各个元素本身上注册事件处理程序。这里有一个链接

0

不会的,新元素不会附带处理程序,您必须显式地重新分配处理程序


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接