stopListening到Mojo.Event

时间:2011-04-14 14:30:57

标签: javascript prototype webos

我在webOS应用程序中有几个事件监听器,我设置的每个都是这样的:

this.controller.listen(
    'aWidget', 
    Mojo.Event.widgetEvent, 
    this.respondToWidgetEvent.bindAsEventListener(this)
);

为了停止收听,我写了这样的代码:

this.controller.stopListening(
    'aWidget', 
    Mojo.Event.widgetEvent, 
    this.respondToWidgetEvent.bindAsEventListener(this)
);

然而,我现在意识到我的听众可能不会停下来。当我在一个函数上调用bindAsEventListener时,我每次都会找回同一个对象吗?如果没有,stopListening确实会确保删除相应的侦听器吗?

1 个答案:

答案 0 :(得分:1)

如果我没记错的话,每次调用bindAsEventListener()都会返回一个新实例。通过调用一次并设置var:

来阻止该操作
bindToWidget = this.respondToWidgetEvent.bindAsEventListener(this);

this.controller.listen(
    'aWidget', 
    Mojo.Event.widgetEvent, 
    bindToWidget
);

this.controller.stopListening(
    'aWidget', 
    Mojo.Event.widgetEvent, 
    bindToWidget
);