我想用Backbone.js實現一個簡單的工具欄。我有以下簡單的骨幹代碼:如何處理類似但不同視圖的點擊事件?
var Toolbox = Backbone.View.extend({
el: $("#toolbox ul"),
initialize : function() {
_.bindAll(this, "addOne");
toolCollection.each(this.addOne);
},
addOne : function(tool) {
var view = new ToolView({ model: tool });
$(this.el).append(view.render().el);
}
});
// Tool model and collections
var Tool = Backbone.Model.extend();
var toolCollection = new Backbone.Collection([
new Tool({
tool: "toolName1"
}),
new Tool({
tool: "toolName2"
})
]);
// The view of the individual tools
var ToolView = Backbone.View.extend({
tagName: "li",
template : _.template($("#tool-template").html()),
events: {
"click #toolbox ul li a": "toolClick"
},
initialize : function() {
_.bindAll(this, "render", "toolClick");
this.model.view = this;
},
render : function() {
var mj = this.model.toJSON();
$(this.el).html(this.template(mj));
return this;
},
toolClick : function() {
console.log("Tool clicked");
}
});
var tb = new Toolbox;
所以,有了這個,我有一個問題。我顯然需要以不同的方式處理每個工具上的點擊。 當我實例化我的視圖,我可以綁定一個特定的點擊事件來處理該特定工具的點擊,如果是的話,我會在哪裏寫點擊事件?我甚至不確定我是否在這裏錯過了一些東西,但任何人都可以提出一種模式,我可以如何擁有一組相關但不同的視圖,以及如何分別處理單擊視圖?任何幫助,將不勝感激。提前致謝。