Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/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对象_Javascript_Mootools - Fatal编程技术网

删除或重置javascript对象

删除或重置javascript对象,javascript,mootools,Javascript,Mootools,好的,我有一个产品列表,您可以使用javascript添加和删除这些产品。 问题是我有一个singleselect类,用于突出显示选定的产品。每当我向列表中添加或删除产品时,我都希望重置或重新创建此singleselect对象。 我已经搜索过了,我想我理解了为什么没有重置对象,但我不知道如何修复它 在我的javascript代码中,该代码可以工作,但在我删除一个产品并选择另一个产品之后 我得到一个错误,表明旧的singleselect对象仍然存在 var single; document.ad

好的,我有一个产品列表,您可以使用javascript添加和删除这些产品。 问题是我有一个singleselect类,用于突出显示选定的产品。每当我向列表中添加或删除产品时,我都希望重置或重新创建此singleselect对象。 我已经搜索过了,我想我理解了为什么没有重置对象,但我不知道如何修复它

在我的javascript代码中,该代码可以工作,但在我删除一个产品并选择另一个产品之后 我得到一个错误,表明旧的singleselect对象仍然存在

var single;

document.addEvent('domready', function() {      
        setSingleSelect();  
}       

  $('removeProduct').addEvent('click',function(e){
        e.stop();           
        $('productList').getElements('input[value="' + removeElement + '"], div[id="' + removeElement + '"]').destroy();
         single = null;
         setSingleSelect();
    });

function setSingleSelect(){
    single = new SingleSelect(
    $('productList').getElements('div'),
    {onSelectChange : function(element) {       
        removeElement = element.id;                         
    }});    
}

您的新实例将覆盖引用中正在运行的实例,因此基本上旧实例可能会进行垃圾收集,除非附加了指向该实例的事件,例如DOM事件——在这种情况下,它不会。最好查看
SingleSelect
类,简单地为处理删除事件和元素的析构函数添加一些方法,然后调用initialize对新类进行初始化。将逻辑包含在单个实例及其事件中,而不是分散在多个anon FUNC中,这样可以减少轻松gc的机会。重用对象!你能为“SingleSelect”发布一些代码吗,或者参考我们找到的?