我尝试使用以下命令在页面上的几个按钮上检测到鼠标时触发功能
var view=Backbone.View.Extend({
template:_.template($("tem").html()),
events: {
"click button" : "foo"
},
})
然后我将按钮放在模板脚本中,并在模板外部,它只是直接生成HTML。
但是,它只注册模板中按钮的点击,而不是直接HTML按钮。
如何解决这个问题?
答案 0 :(得分:1)
最容易做的事情可能是在视图中的初始化函数中设置自定义绑定,如下所示:
var view = Backbone.View.Extend({
template:_.template($("tem").html()),
events: {
"click button" : "foo"
},
initialize: function() {
_.bindAll(this, 'foo'); //so foo's "this" is the view
$('selector to direct HTML button').delegate('click', this.foo); //so when the out-of-template button is clicked, the foo handler is called
}
})
答案 1 :(得分:0)
您需要在视图中正确指定el。我没有。 因为事件{}调用了jQuery委托函数。并且委托被绑定为根元素