骨干.on上下文错误

时间:2014-01-15 09:55:49

标签: jquery backbone.js backbone-events

window.PR= Backbone.View.extend({
el: $(".ptMain"),
initialize:function (model) {
},
events:{
     "click .yes":"removeThis"
},
removeThis:function(){
    console.log("test");
    console.log(this)
},
render:function () {
    var _this = this;
    $(this.el).html(this.template({remove:this.model.toJSON()}));
    $(".yes").on("click",this.removeThis,_this)
    return this;
}})

我有“是”类的按钮。我无法在“事件”中绑定事件,因为此元素在其他视图中。当我没有上下文绑定它的确定,但是当我将上下文添加到.on时我有错误

TypeError:handleObj.handler.apply不是函数 .apply(matched.elem,args);第3074行的jquery-1.9.1.js 请帮助解决这个问题。

1 个答案:

答案 0 :(得分:1)

我个人使用$.proxy()函数来处理这些情况。它允许您调用具有特定上下文的函数。你最终将它作为渲染功能。

render:function () {
    var _this = this;
    $(this.el).html(this.template({remove:this.model.toJSON()}));
    $(".yes").on("click", $.proxy(this.removeThis, _this));
    return this;
}})