Javascript MooTools:destroy()和事件
当我Javascript MooTools:destroy()和事件,javascript,mootools,Javascript,Mootools,当我.destroy()一个MooTools中的元素对象时,destroy()会自动在内部调用元素.removeEvents(),或者我需要记住这一点。(我正在从DOM中删除以前调用了元素.addEvent()的元素。).destroy()在MooTools 1.2.4版中: destroy: function(){ Element.empty(this); Element.dispose(this); clean(this, true); return null
.destroy()
一个MooTools中的元素
对象时,destroy()
会自动在内部调用元素.removeEvents()
,或者我需要记住这一点。(我正在从DOM中删除以前调用了元素.addEvent()
的元素。).destroy()在MooTools 1.2.4版中:
destroy: function(){
Element.empty(this);
Element.dispose(this);
clean(this, true);
return null;
}
如果浏览器需要,清除(项目,保留)功能会执行.removeEvents()
:
var clean = function(item, retain){
....
if (item.clearAttributes){
var clone = retain && item.cloneNode(false);
item.clearAttributes();
if (clone) item.mergeAttributes(clone);
} else if (item.removeEvents){
....
};
你应该很安全,它正在清空元素
当然,以上所有代码都要归功于MooTools:是的,当您对元素调用
destroy()
时,MooTools将调用removeEvents()
(当前实现在一个名为
clean()
的函数中执行此操作,该函数是从destroy()
调用的)。如果浏览器支持它,则不是这样,而是如果发送到clean()
函数的项支持它<代码> ReaveEvices()是一个MOOToOK函数本身,不是一个内置函数。@ H.VARD S -实际上我修剪了一些逻辑,它被封装在<代码>(浏览器。引擎。三叉戟){ <代码> >,基本上是一个IE检查……其他浏览器已经正确地删除事件,这是一个IE唯一的内存泄漏带帮助。我把上面的“支持”改为“需要”…希望有一个更清楚的答案。