jQuery替代.die()。live()在ajaxed内容?

时间:2011-12-27 12:07:18

标签: jquery ajax bind live die

我有一个表单,它在ajaxed中,并在该表单中生成新输入,这些新输入在初始ajaxed表单中由.live()附加了事件。

所以,当我关闭这个ajaxed表单然后再次打开它而没有刷新时,我遇到了这个问题:我有2个活动事件绑定到每个单独的元素,应该只有1个直播事件。

我看到解决此问题的方法是在每个.live()之前加.die()以清除之前附加的所有live()

我想知道是否有更清洁或更合适的处理方法?

1 个答案:

答案 0 :(得分:4)

你知道.live()是如何运作的,对吗?您将其称为一次,并且事件处理程序附加到文档并处理与该选择器匹配的所有元素的事件,即使将来添加它们也是如此。每次添加元素时都不会调用.live();如果您正确使用它,如果您想要完全停止处理该特定事件,或者想要更改/替换处理程序,则只需调用.die()

简短版本:更干净,更合适的选择是在您不需要时退出调用.live()