使用.destrict()可删除事件

Using .detach() removes events?

本文关键字:删除 事件 destrict 使用      更新时间:2023-09-26

我有一个div,里面有很多内容,我使用detach()和after()将其放置在文档中的其他地方。

在此之前,我使用.bind()将一些点击事件放在DIV.内的复选框上

这似乎很有效。

当我完成DIV后,我把它放回原来的位置。不过,当我再次使用相同的.destrict()和after()方法时,我的点击处理程序似乎不见了。

这是detach()的正常行为吗?有没有合适的方法来保存事件?

对于好奇的人来说,我的DIV包含一个表单,使用绑定点击在复选框上有一些验证功能。分离用于将窗体放置在模式对话框中,并在用户关闭对话框时将其放回隐藏的DIV中。当用户再次打开带有表单的对话框时,就是我经历了丢失单击事件的时候。

因此,使用.destrict()不会删除事件。

即使使用更接近我实际代码的小提琴,我似乎也无法重现这一点

http://jsfiddle.net/n874q/5/

我的问题是,当函数被绑定时,我的点击函数在一个由复选框组成的jQuery数组上失败了(无声地)。

我解决了这个问题,而是通过函数中的选择器找到复选框,而不是将数组传递给函数。

谢谢。