Как захватить ключевое событие из представления?
Я пытаюсь захватить ключевое событие из представления следующим образом:
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] в представлении или в его subviews. Мне просто нужно знать, нажимает ли пользователь какой-либо ключ, а затем что-то делать в представлении.
Ответы
Ответ 1
При нажатии клавиши происходит сфокусированный элемент на странице. Если у вас нет ничего в вашем представлении, и представление не имеет никакого фокуса, тогда у вас не будет никаких событий нажатия клавиш.
(btw, если вы хотите сделать ключевое событие для этого события this.el, сделайте "keypress": "showKey" )
В приведенном выше коде тело, скорее всего, получит все события нажатия клавиш.
Ответ 2
Вы можете сделать это в функции initialize():
_.bindAll(this, 'on_keypress');
$(document).bind('keypress', this.on_keypress);