我有一个#root
DOM对象,其中包含许多.element
个孩子:
<div id='root'>
<div class='element'>
<span>Element 1</span>
</div>
<div class='element'>
<span>Element 2</span>
</div>
<div class='element'>
<span>Element 3</span>
</div>
</div>
我想为每个.element
设置一个Backbone View实例。这就是我的尝试:
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选择器的情况?
答案 0 :(得分:5)
使用相关元素初始化您的观看次数:
$(".element").each(function(ix,el) {
new ElementView({ model: modelInstance , el:el });
});
不要忘记删除this.setElement('.element');
代码中的initialize
。