在Backbone.js中我试图使用变量作为选择器绑定到这样的事件:
events: function() {
var _events = {};
_events["click " + "#plus-" + this.options.count] = "add";
return _events;
}
一些(或多个)事情必定是错误的,因为Backbone似乎忽略了它。
我在这里看到的大多数示例都使用class而不是id选择器。这有什么理由吗?
提前致谢
答案 0 :(得分:8)
我不得不说我不理解动态事件声明需要。但我想你有理由。
我是如何想出一个看起来像这样的工作解决方案:
// html
<div id="container">
<button id="button-1">button 1</button>
<button id="button-2">button 2</button>
</div>
// js
var View = Backbone.View.extend({
events: function(){
var _events = {};
_events["click " + "#button-" + this.options.count] = "buttonClick";
return _events;
},
buttonClick: function(){
console.log( "click() on button " + this.options.count );
}
});
var view1 = new View({
el: $('#container'),
count: 1
});
var view2 = new View({
el: $('#container'),
count: 2
});
所以,要么我缺少某些东西,要么问题出在其他地方。
关于在事件css选择器中使用class
或id
,这取决于您。