在“空”函数(http://api.
jquery.com/empty/)的jquery文档中,有以下语句:
"To avoid memory leaks,jQuery removes other constructs such as data and event handlers from the child elements before removing the elements themselves."
文字说:“…… jQuery从!C H I L D!元素中移除事件处理程序……”.但我希望事件处理程序也从div标签中删除($(“#mydiv”).empty).我知道有“删除”功能,但我的意图是不删除div标签.完成这项工作的最佳方法是什么?
另一件事是:
当他们说“删除事件处理程序”时.他们只删除用“bind”制作的构造,还是删除用“delegate”制作的构造?
非常感谢提前
解决方法
@H_301_14@ 要从元素中删除所有绑定事件处理程序,可以将特殊值“*”传递给 off()方法:$("#mydiv").empty().off("*");
当文档说删除事件处理程序时,它只会说明绑定事件处理程序,而不是委托事件处理程序,因为它们绑定到不受删除影响的祖先元素(或文档本身).
这允许委托处理程序在以后恢复删除的元素时继续按预期工作.