我有一个div元素,其中有几个元素,例如按钮等,它们附有事件处理程序。我知道它可以走:
$("#button1").off()
删除按钮的处理程序,但如果可能的话,我想做这样的事情:
$("#div1").removeChildHandlers();
jQuery中是否有本机函数可以执行此操作,或者我必须将它们循环所有元素,然后删除1 x 1?
jQuery将为您为您的直接孩子做循环:
$("#div1").children().off();
或如果您想要所有后代:
$("#div1").find("*").off();
做此帮助:
$("#div1").find('*').off();
尝试
$("#div1 >* ").off();
或:
$("#div1").find('button').off();
如果您说的是<button>
元素
IMHO更好的做法和更好的性能选项是使用on
方法将处理程序连接到外部父母...
$("#div1").find("click", ".childButton", magicFunction);
然后要删除所有听众,您可以在父元素上调用off
。
$("#div1").off();