5

在我的一个观点中,我有:

events: {
    'click .tab': 'doSomething',
},

然后:

doSomething: function(){
    ...
},

在我看来,这是一个重复出现的结构,但由于某种原因,此视图中的单击不会触发“doSomething”功能。

元素何时绑定到事件?

关于调试的任何提示?

4

2 回答 2

10

链接到这里的小提琴:http: //jsfiddle.net/7xRak/

省略选择器会导致事件绑定到视图的根元素 ( this.el)。

如果您class="tab"是查看 DOM 元素的意思this.el,那么您应该将事件绑定为

events : {
  'click' : 'dosomething'
}

对于内部元素,this.el就像

<div class="tab">
     <span class="inner"></span>
</div>

那么你应该将事件绑定为,

  events : {
      'click' : 'dosomething'
      'click .inner' : 'onInnerClick'
    }

文件:http ://backbonejs.org/#View-delegateEvents

于 2012-09-15T04:49:39.200 回答
7

委托发生在delegateEvents视图构造函数末尾的方法期间。

http://documentcloud.github.com/backbone/docs/backbone.html#section-144

在返回之前尝试手动调用this.delegateEvents()内部。您是否以骨干没有预料到的方式在您的内部或方法中进行操作?renderthisthis.elinitializerender

于 2012-09-15T00:16:07.390 回答