我试图防止部分代码导致内存泄漏,而这些代码在元素被销毁时不会被触发。
我的代码将事件附加到document
上的mouseup
,并对DOM的特定元素进行处理。
如果删除了该元素,则该事件应由Ember的willDestroyElement
禁用,但有时它不会发生,所以我需要手动禁用它。
为此,我在事件函数的开头放了这个字符串:
onMouseUp: function(evt) {
// relevant part of the code:
if (!this.$()) {
return $(document).off(evt);
}
[...]
通过这种方式看起来事件已从document
正确解除绑定。
我无法找到有关此用例的文档,我想知道这样做是否会导致副作用或有什么不好?