我創建了一個對話框,其中有一些帶有事件的按鈕。當我銷燬對話遞歸程序或通過按X在那裏刪除所有創建的事件偵聽器(隱藏,取消,click1,click2)?
因爲我經常(對於不同的對話框)調用這個部分(這裏我只發佈了我的代碼的一個簡化版本),並且我的代碼似乎可能有一些內存泄漏,我想消除它們。所以請告訴我,是否必須自己移除事件偵聽器才行,比如eventHide.remove();?
附加信息:我試圖使用on(如eventHide)的點擊和取消事件,但它沒有奏效。Javascript(Dojo):在銷燬對象時是否刪除事件偵聽器
var myDialog = new Dialog({
content: 'Testdialog'
});
myDialog.show();
var btn1 = new dijit.form.Button({ label: "Ok" });
var btn2 = new dijit.form.Button({ label: "Help" });
myDialog.containerNode.appendChild(btn1.domNode);
myDialog.containerNode.appendChild(btn2.domNode);
var eventHide = on.once(myDialog, "hide", function(e){
console.log('hide');
myDialog.destroyRecursive();
});
dojo.connect(btn1, "onClick", function(){
console.log('click ok');
myDialog.destroyRecursive();
});
dojo.connect(btn2, "onClick", function(){
console.log('click help');
myDialog.destroyRecursive();
});
dojo.connect(myDialog, "onCancel", function(){
console.log('cancel');
});