Backbone事件没有绑定到dom元素

cap*_*ght 5 events dom click backbone.js

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

events: {
    'click .tab': 'doSomething',
},
Run Code Online (Sandbox Code Playgroud)

然后:

doSomething: function(){
    ...
},
Run Code Online (Sandbox Code Playgroud)

这是我视图中的重复结构,但由于某种原因,"doSomething"功能不会被此视图中的单击触发.

元素何时被绑定到事件?

有关调试的提示吗?

Arr*_*und 10

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

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

如果您class="tab"是视图DOM元素意味着this.el您应该将事件绑定为

events : {
  'click' : 'dosomething'
}
Run Code Online (Sandbox Code Playgroud)

和用于在内部元件this.el

<div class="tab">
     <span class="inner"></span>
</div>
Run Code Online (Sandbox Code Playgroud)

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

  events : {
      'click' : 'dosomething'
      'click .inner' : 'onInnerClick'
    }
Run Code Online (Sandbox Code Playgroud)

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

  • 这正是我在上面展示的,我很清楚这种模式.我想说的是,由于某种原因,这种模式不起作用,所以有什么方法可以调试事件委托. (3认同)

Pet*_*ons 7

委派在delegateEvents视图构造函数结束时的方法期间发生.

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

在返回之前尝试手动调用this.delegateEvents()内部.你跟把玩你的内部或方法的方式,骨干没想到?renderthisthis.elinitializerender