このエラーの修正に大きな問題があります。
Backbone.jsにビューがあり、そのビューに対するいくつかのアクションをキーボードイベントにバインドしたいと思います。
これが私の見解です:
window.PicturesView = Backbone.View.extend({
initialize : function() {
$(document).on('keydown', this.keyboard, this);
},
remove : function() {
$(document).off('keydown', this.keyboard, this);
},
render : function(eventName) {
// blah blah blah
},
next : function() {
// blah
},
prev : function() {
// blah
},
keyboard : function(e) {
console.log(e.keyCode);
if (e.keyCode == 37) {
this.prev();
return false;
}
if (e.keyCode == 39) {
this.next();
return false;
}
}
});
キーボードを押すと、次のエラーが発生します:
Uncaught TypeError: Object [object Object] has no method 'apply'
これはjQueryによってトリガーされます。
これを読んだ後:Uncaught TypeError:Object[objectObject]にはメソッド'apply'がありません
私も試しました:
$(document).on('keydown', function(e) {
this.keyboard(e);
}, this);
しかし、それでも同じエラーが発生します。
そして:
スタイル$(document).on('keydown', 'keyboard', this);
でevents : { 'event' : 'action' }
はありますが、何もしません。
コード内のどこかでjQueryを使用するだけでハックを見つけることができるかもしれませんが、私はイベント処理とバックボーンの専門家ではないので、それをうまく実行したいと思います。
はっきりしているといいのですが、ありがとう