Alp*_*Dev 6 javascript events mootools
JavaScript 中是否存在任何现有的 OnDestroy/OnDispose 事件,或者纯 JS 或 Mootools 中是否存在任何已知的自定义实现?假设我想在元素从 DOM 中销毁/删除时调用 console.log('bye') 。类似于这个jQuery 解决方案的东西
虽然您可以这样做,但这样做并不实际。
首先 -destroy事件 fill 触发正在被销毁的元素的上下文,此时在事件 cb 期间,它将被删除并可能被 GCd 。
其次,IE6,7,8,其中 Element 原型是只读的,元素通过$/本地添加到它们的方法document.id- 意味着需要在 DOM 中访问任何内容之前加载装饰方法。
第三,如果说的话,这实际上不会触发,el.parentNode.innerHTML = ''或者它们通过原始js/替代方式被删除。从这个意义上来说,它不是一个真正的观察者,只是捕获了两种方法。
(function(){
// old methods
var destroy = Element.prototype.destroy,
dispose = Element.prototype.dispose;
// redefine them and fire the events before calling old protos.
[Element, Elements].invoke('implement', {
destroy: function(){
this.fireEvent('destroy');
return destroy.apply(this, arguments);
},
dispose: function(){
this.fireEvent('dispose');
return dispose.apply(this, arguments);
}
});
}());
var foo = document.getElement('.foo');
foo.addEvents({
dispose: function(){
alert('we are not in the dom now');
}
});
foo.dispose();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4237 次 |
| 最近记录: |