0

提前感谢您查看此内容。

本质上,我正在调用 didInsertElement() 并将事件绑定到 DOM$(document).on(...)

我正在努力成为一个有礼貌的开发人员并$(document).off(...)使用 willDestroyElement 进行调用。

但是,由于我可能绑定了多个东西,因此$(document)我需要指定要删除的功能。当我这样做时,jQuerythis用它自己的劫持 EmberHTMLElement

JsFiddle:http: //jsfiddle.net/brennan/H65Ax/

有没有更好的方法来做到这一点?

4

1 回答 1

1

像这样修改你的代码:

didInsertElement: function(){
    var self = this;
    //storing `click` handler on new property `addedListener`
    $(document).off('click', self.addedListener = function(){
        self.set('isActive', false);
    });
},
willDestroyElement: function(){
    var self = this;
    $(document).off('click', self.addedListener);
},
于 2012-06-22T18:03:57.090 回答