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