我的回调功能没有看到这个'
这是我的绑定按键代码:
initialize: function () {
$(document).bind('keyup', this.keyPress);
_.bindAll(this, 'rotate');
},
rotate: function (event) {
//smth...
}
这里是功能keyPress:
keyPress: function(event) {
console.log(event.keyCode);
var pageX = 0, pageY = 0;
var ev = new Object();
ev.pageY = pageY;
ev.pageX = pageX;
func = this.rotate;
func(ev);
//also I tried like this:
//this.rotate(ev);
}
这是一个错误:"未捕获的TypeError:undefined不是函数"
我无法得到它。
我将非常感谢您的帮助,谢谢!
答案 0 :(得分:1)
这里的问题是,在JQuery中,bind添加了一个事件监听器,它没有设置'这个'
的上下文您需要使用下划线将方法绑定到上下文。
e.g。
initialize: function () {
$(document).bind('keyup', _.bind(this.keyPress, this));
_.bindAll(this, 'rotate');
},
rotate: function (event) {
//smth...
}
这将确保'这个'指的是正确的对象