Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MooTools:destroy()和事件_Javascript_Mootools - Fatal编程技术网

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唯一的内存泄漏带帮助。我把上面的“支持”改为“需要”…希望有一个更清楚的答案。