javascript - 清理动态创建的 XUL 元素的事件监听器?

标签 javascript firefox firefox-addon xul

大约一个月前,我在 how to properly set events for dynamic XUL elements 上问了一个问题。现在我知道如何设置它们,我想知道拆除它们时需要做什么。我应该使用 element.removeEventListener()当动态创建的元素(在我的例子中是工具栏按钮和菜单项)被删除时?假设事件监听器如下所示创建,我如何获取对监听器的引用以便清理它?

tempMenuItem.addEventListener("command", function(event)
{
  myObject.someFunction();
}, false);

在此过程中还有我应该注意的其他问题吗?

最佳答案

通常情况下,事件监听器会自动清理,您无需担心手动删除它们。如果您碰巧想要删除事件监听器,正确的方法是:

var theListener = function (event) { ... };
item.addEventListener("command", theListener, false);
item.removeEventListener("command", theListener, false);

不要忘记确保两次调用中的第三个参数都匹配:)

关于javascript - 清理动态创建的 XUL 元素的事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13943739/

相关文章:

jQuery animate() 忽略 firefox 上的持续时间

javascript - chrome.webNavigation.onCompleted 在完成之前触发?

javascript - 如何在 AJAX 调用中捕获 sec_error_unknown_issuer 错误?

javascript - Firefox 中未定义事件

javascript - nsISocketTransportService 使用 Firefox 插件 sdk

javascript - 以相同字符结束,其他替换

javascript - 使用 Sequelize 将另一个表中的属性作为一个字段包含在内

javascript - 自定义 TinyMCE 按钮不适用于包含特殊字符的术语

CSS3 过渡 - Javascript 库

html - FireFox 浏览器中的 Textarea 额外行