使用Descendants选择器进行骨干事件绑定

时间:2015-12-02 18:15:26

标签: javascript backbone.js marionette

我有一个事件委托对象声明如下:

events:{
    'click .outer .showMore':'showMore',
    'click .showLess':'showLess'
}

第一个不开火。我可以输入

$('.outer .showMore').on('click',function(){alert('test')})

进入控制台,它将绑定该事件。 .showMore元素在我的模板中,它不是动态添加的。如果我取出.outer,它可以工作,但是,我需要它来防止流血到其他视图。

我错过了什么?即使Backbone docs for delegateEvents也显示了后代选择器。

这是一个木偶项目,但我相信这些问题与骨干相关。

1 个答案:

答案 0 :(得分:0)

当通过事件哈希绑定事件时,Backbone很聪明,只能绑定当前视图中的元素。这意味着我根本不需要使用.outer选择器。

我想,它不起作用的原因是Backbone可能在将视图类传递给jQuery进行绑定之前将我的视图类添加到选择器中。所以很可能试图绑定'.outer .outer .showMore'