灰烬 - 处理视图外的点击次数

时间:2013-04-24 22:56:40

标签: javascript jquery ember.js

想知道是否有人在使用Ember时有更好的方法来处理div外的点击?我知道使用全局点击处理程序的jQuery方法,你必须指定为某些实例采取的每个操作,但我希望有人想出一种方法在Ember视图中声明这个。同样,我尝试了'给一个div选项卡索引并使用on blur,但是Ember动作似乎不允许这样。

2 个答案:

答案 0 :(得分:7)

感谢您的投入。我回去再次阅读jQuerys .on上的文档。我不知道你可以命名事件。所以我把这两条评论都拿出来并把它们结合起来。

didInsertElement: function() {
    Ember.run.next(this, 'attachClickHandler');
},

attachClickHandler: function (){
    var temp = this;

    $(window).on("click." + temp.elementId, function (e){
        //...event here
    });
},

detachClickHandler: function (){
    $(window).off("click." + this.elementId);
},

这允许事件特定于每个视图实例,这正是我想要的。谢谢你们!

答案 1 :(得分:2)

您可能会发现ClickElsewhereMixin有用

只需在任何组件中包含mixin并实现onClickElsewhere()