如何在Ember中捕获全局keyPress事件

时间:2013-05-13 01:27:33

标签: keyboard ember.js

我确定我遗漏了一些显而易见的东西,但是:我如何回应页面上任何的按键事件?

例如,假设我有一个视频播放器,如果用户在任何时候按下空格键我想暂停它。或者,我正在编写游戏并希望使用箭头键来指导角色,而不考虑特定的视图或子视图。

定义App.ApplicationView = Ember.View.create({ keyPress: whatever })似乎无效。我原以为所有的按键事件都会冒出来。

我想我想做的是:

$(document).keypress(function(e) {
    alert('You pressed a key!');
});

除了Ember。

1 个答案:

答案 0 :(得分:3)

如果您正在寻找全局按键,上面的代码示例可能是最佳解决方案。 ember应用程序附加到正文(或您定义的根元素),并且需要对视图进行某种关注。例如,您可以这样做:

App.ApplicationView = Em.View.extend({
  keyUp: function(){
    alert(1);
  }
});

这将有效,但应用程序视图或子项需要具有焦点。例如,如果您想捕获所有输入字段的键事件,这很有用。