我正在尝试从视图中捕获关键事件,如下所示:
myView = Backbone.View.extend({
el: $('#someDiv'),
initialize: function(){
// initialize some subviews
},
render: function(){
return this;
},
events:{
'keypress #someDiv': 'showKey'
},
showKey: function(e){
console.log(e.keyCode);
}
})
这不起作用?
ps:视图或其子视图中没有[input]元素。我只需要知道用户是否按下任何键,然后在视图上执行某些操作。
答案 0 :(得分:14)
您可以在view initialize()函数中执行此操作:
_.bindAll(this, 'on_keypress');
$(document).bind('keypress', this.on_keypress);
答案 1 :(得分:4)
按下键进入页面上的焦点元素。如果您的视图中没有任何内容且视图没有任何焦点,那么您将不会有任何按键事件。
(顺便说一句,如果你想为this.el做按键事件,请执行“keypress”:“showKey”)
在上面的代码中,正文很可能会收到所有按键事件。