我想用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;
所以,有了这个,我有一个问题。我显然需要以不同的方式处理每个工具上的点击。 当我实例化我的视图,我可以绑定一个特定的点击事件来处理该特定工具的点击,如果是的话,我会在哪里写点击事件?我甚至不确定我是否在这里错过了一些东西,但任何人都可以提出一种模式,我可以如何拥有一组相关但不同的视图,以及如何分别处理单击视图?任何帮助,将不胜感激。提前致谢。