5

私の見解の1つでは、次のようになっています。

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 に答える