2013-05-13 48 views
2

我確定我錯過了一些顯而易見的事情,但是:如何響應頁面上任何地方的按鍵事件如何捕捉Ember中的全局keyPress事件

例如,假設我有一個視頻播放器,並且我想暫停它,如果用戶在任何時候按下空格鍵。或者,我在寫遊戲,並希望使用箭頭鍵指示角色,而不考慮具體的視圖或子視圖。

定義App.ApplicationView = Ember.View.create({ keyPress: whatever })似乎不起作用。我會認爲所有按鍵事件都會冒泡。

我想我想要做的是:

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

除了通過灰燼。

回答

3

如果你正在尋找一個全球性的按鍵,你上面的代碼示例可能是最好的解決方案。應用程序應用程序附加到主體(或您定義的根元素),並需要對視圖進行某種焦點。例如,你可以這樣做:

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

這會工作,但應用程序視圖或孩子需要有焦點。例如,如果您想捕獲所有輸入字段的關鍵事件,這很有用。

+1

當子視圖具有焦點時,我的應用程序級別事件將丟失,仍然在搜索最佳的Ember方式來執行此操作。 – jrode 2015-05-04 14:55:08