2012-08-13 50 views
4

在Backbone.js的,我试图用一个变量作为选择绑定到一个像这样的事件中使用变量选择:Backbone.js的如何在事件

events: function() { 
    var _events = {}; 
    _events["click " + "#plus-" + this.options.count] = "add"; 
    return _events; 
} 

一些(或多个)事情一定是错的,因为Backbone似乎忽略了它。

我在这里看到的大多数例子都使用类而不是id选择器。这是有原因的吗?

在此先感谢

回答

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 
}); 

检查working jsFiddel

所以,无论是我想的东西或者问题是其他地方。

关于在您的事件中使用classid事件css选择器这取决于您。

+0

非常感谢您的帮助。虽然我没有改变它,但我的代码(基本上和你的代码一样)也可以工作! – alearg 2012-08-13 10:53:12

+0

你也可以在对象上使用_extend – 2013-03-26 19:16:33