Javascript Jquery删除元素内的所有事件处理程序
我有一个div元素,里面有几个元素,比如按钮等等,它们都附带了事件处理程序。我知道有可能去:Javascript Jquery删除元素内的所有事件处理程序,javascript,jquery,event-handling,Javascript,Jquery,Event Handling,我有一个div元素,里面有几个元素,比如按钮等等,它们都附带了事件处理程序。我知道有可能去: $("#button1").off() 要删除按钮的处理程序,但如果可能,我希望执行以下操作: $("#div1").removeChildHandlers(); JQuery中是否有一个本机函数来执行此操作,或者我是否必须将所有元素循环并逐个删除?这是否有帮助: $("#div1").find('*').off(); jQuery将只为直接子对象执行循环: $("#div1").children
$("#button1").off()
要删除按钮的处理程序,但如果可能,我希望执行以下操作:
$("#div1").removeChildHandlers();
JQuery中是否有一个本机函数来执行此操作,或者我是否必须将所有元素循环并逐个删除?这是否有帮助:
$("#div1").find('*').off();
jQuery将只为直接子对象执行循环:
$("#div1").children().off();
或者,如果需要所有子体:
$("#div1").find("*").off();
试一试
$("#div1 >* ").off();
或:
如果你说的是
元素可能是.find('button').off()
你在找什么?不,可能是不太具体的重复感谢我想这涵盖了我所寻找的所有可能性。谢谢。我发现如果不手动跟踪事件处理程序,很难确定它是否已经存在。关闭所有子体处理程序后,我可以立即重新应用它们。可能对性能不太好,但拥有一个快速解决方案非常好!$(“#div1”).children().off()
与$(“#div1”).off()
之间的主要区别是什么?@Malky.Kid-$(“#div1”).off()
仅从\div1
元素本身删除事件处理程序$(“#div1”).children().off()
仅对#div
的子项进行操作,而对#div
完全不进行操作。因此,这取决于您要对哪些元素进行操作。@jfriend00 my GratiudeInstein而不是$(“#div1”)。查找('*')
可以使用CSS选择器$(“#div1*”)
。
$("#div1").find('button').off();