我不确定我是否需要删除我附加的任何事件处理程序,或者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();
...
所以,我想,提炼上述内容,我的问题是:
我是否需要担心清理以后无效的on
事件?
如果1. ==是,我唯一的选择是创建对事件的引用吗?
答案 0 :(得分:2)
使用this.own()
dijit/Destroyable
own()
函数跟踪指定的句柄,并在销毁此实例时删除/销毁它们,除非它们已被手动删除/销毁。
此处有更多信息: http://dojotoolkit.org/reference-guide/1.10/dijit/Destroyable.html `