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

问题描述:

如果我从附有事件处理程序的DOM中删除一个元素,然后在某处添加一个具有相同ID的元素,新元素是否会有处理程序?从DOM中删除元素是否会影响其事件处理程序?

不,因为它会是一个不同的对象。如果你使用jQuery和live()你会得到这种行为。

+0

不知道live(),谢谢。 – planetp 2010-03-02 14:51:38

+1

注意'live()'不是一些jQuery魔术:它只是一个事件委托的应用程序,可以在没有外部库的情况下完成;为了使它可用,你基本上必须自己编写一个跨浏览器的包装器 – Christoph 2010-03-02 15:08:17

没有,新元素将不会有处理程序连接,你必须重新分配处理器明确地

没有,但你可以看看事件的代表团。主要思想是事件会冒泡到父DOM元素,以便您可以将事件处理程序附加到DOM更高的位置。你可以注册一个像click这样的事件,并且给这个处理器规则说明它应该如何处理子元素点击事件。当其子元素被添加或删除时,该处理程序仍然存在,因此不需要在各个元素本身上注册事件处理程序。这里是link