关于如何从元素中删除所有“特定”处理程序(例如 onclick),或从元素中清除所有事件等有很多问题。
这个问题有点宽泛。我们在 IE7 和 IE8 下的 asp.net 站点中面临巨大的内存泄漏,而缩小这些泄漏的调整之一是取消绑定页面上所有元素的所有事件。基本上是这样的:
$('*').off();
现在,我们正在努力提高应用程序的性能,毫不奇怪,这条特殊的线路是热点之一。
所以,问题是:有没有办法更有效地实现相同的结果(从文档中的所有元素中显式删除所有处理程序)?
禁止选项:
- “重新加载页面” - 以这种方式保留内存泄漏。
- “每次你附加一个处理程序时,你都会将它存储在一个数组中”——这样的地方太多了
我在想的是使用一些 jQuery 内部(甚至可能是非公共 API)来利用附加处理程序的元素检测。但这略高于我目前使用 jQuery 的能力。如果有帮助,我们的目标是 jQuery 1.7.1。