0

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

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

在这个过程中我应该注意其他任何问题吗?

4

1 回答 1

2

通常,事件侦听器会自动清理,您无需担心手动删除它们。如果您碰巧想要删除事件侦听器,那么正确的做法是:

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

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

于 2012-12-19T16:12:39.407 回答