`el`と` $ el`を正しくターゲット設定する

多くの .element 子を持つ #root DOMオブジェクトがあります。

<div id='root'>
  <div class='element'>
    Element 1
  </div>
  <div class='element'>
    Element 2
  </div>
  <div class='element'>
    Element 3
  </div>
</div>

すべての .element にバックボーンビューインスタンスが必要です。これは私が試したことです:

var ElementView = Backbone.View.extend({
  initialize: function() {
    _.bindAll(this, 'showText');
    this.setElement('.element');
  },
  events: {
    'click span': 'showText'
  },
  showText: function() {
    console.log('You have clicked ' + $el.text());
  }
});

ビューを次のように初期化します。

new ElementView({ model: modelInstance });

問題は、 .element が十分正確ではなく、すべての初期化で $ el $( '。element')[0] どのように多くの要素が同じCSSセレクタを持つ状況に対処する必要がありますか?

1

1 答え

関連付けられた要素でビューを初期化します。

$(".element").each(function(ix,el) {
    new ElementView({ model: modelInstance , el:el });
});

コードを initialize コードで this.setElement( '。element'); を削除するのを忘れないでください。

5
追加された