删除Dojo事件处理程序

时间:2016-06-07 04:50:42

标签: events dojo

我不确定我是否需要删除我附加的任何事件处理程序,或者Dojo / JS是否会在我之后自动清除我的垃圾......

假设我有两个“页面”,都是通过自己的模块加载的。加载第1页后,我会使用on模式显示共享on(element,event name,handler)事件的6个按钮。当我转到第2页时,相关的节点被销毁,新的节点被加载了不同的按钮和on处理程序。是否有必要/好处确保当我离开“页面”时,事件处理程序创建的所有内容都被清理干净了?

我已阅读此页面Events with Dojo,我最初从中删除了on个事件遵循以下模式:on(element,event name,handler)

然而,在考虑这个问题时,我注意到了这个例子:

var handle = on(myButton, "click", function(evt){
    // Remove this event using the handle
    handle.remove();
    ...

所以,我想,提炼上述内容,我的问题是:

  1. 我是否需要担心清理以后无效的on事件?

  2. 如果1. ==是,我唯一的选择是创建对事件的引用吗?

1 个答案:

答案 0 :(得分:2)

使用this.own()

中的dijit/Destroyable

own()函数跟踪指定的句柄,并在销毁此实例时删除/销毁它们,除非它们已被手动删除/销毁。

此处有更多信息: http://dojotoolkit.org/reference-guide/1.10/dijit/Destroyable.html `