2012-02-06 37 views
1

我有很多.element孩子#root DOM对象:

<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骨干查看实例。这是我曾尝试:

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选择器的情况?

回答

5

与其相关的元素初始化您的观点:

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

不要”别忘了在initialize代码删除this.setElement('.element');