使用.destrict()可删除事件
Using .detach() removes events?
我有一个div,里面有很多内容,我使用detach()和after()将其放置在文档中的其他地方。
在此之前,我使用.bind()将一些点击事件放在DIV.内的复选框上
这似乎很有效。
当我完成DIV后,我把它放回原来的位置。不过,当我再次使用相同的.destrict()和after()方法时,我的点击处理程序似乎不见了。
这是detach()的正常行为吗?有没有合适的方法来保存事件?
对于好奇的人来说,我的DIV包含一个表单,使用绑定点击在复选框上有一些验证功能。分离用于将窗体放置在模式对话框中,并在用户关闭对话框时将其放回隐藏的DIV中。当用户再次打开带有表单的对话框时,就是我经历了丢失单击事件的时候。
因此,使用.destrict()不会删除事件。
即使使用更接近我实际代码的小提琴,我似乎也无法重现这一点
http://jsfiddle.net/n874q/5/
我的问题是,当函数被绑定时,我的点击函数在一个由复选框组成的jQuery数组上失败了(无声地)。
我解决了这个问题,而是通过函数中的选择器找到复选框,而不是将数组传递给函数。
谢谢。
相关文章:
- javascript删除事件侦听器
- 选择选项是添加或删除事件
- jQuery使用.of()删除事件处理程序时出现的问题
- 在离开页面之前删除事件侦听器
- 如何删除事件侦听器
- 使用jQuery代理时删除事件侦听器
- 使用jquery或javascript删除事件
- 不能使用删除事件侦听器
- 如何在ReactJS中添加或删除事件上的className
- AngularJS:如何从指令添加的元素中删除事件处理程序
- javaScript-从某些链接中删除事件
- 正在删除事件侦听器(DOM级别0方式)
- 无法通过内容脚本删除事件侦听器
- 敏捷JS添加和删除事件
- 如何在 jquery UI 中取消删除事件
- 避免多次删除事件
- 何时以及为何需要删除事件
- 在 Angular 指令中,如何在删除事件后重新应用事件侦听器
- 为什么我的删除事件侦听器不起作用
- 如何从 JavaScript 中的多个元素中删除事件侦听器