2013-04-17 34 views
0

我想卡子E按鍵事件像Alt鍵+ G,我的主幹代碼是這樣的現在:檢測多個按鍵骨幹

class MyView extends Backbone.View 
    template: ... 

    events: 
    "keydown input" : "logKey" 

    logKey: (e) -> 
    if e.keyCode == 18 and e.keyCode == 71 
     console.log('did it!') 

哪個不工作,因爲只有一個事件鍵碼一次。

這怎麼可能實現?謝謝!

回答

0

爲什麼不找keypress,而不是​​?事情是這樣的:

class MyView extends Backbone.View 
    events: 
    "keypress input" : "logKey" 

    logKey: (e) -> 
    console.log('did it') if(e.keyCode == 169) 

演示:http://jsfiddle.net/ambiguous/fmr8D/

+0

我不介意它是否按鍵,順便說一句,keycode 169是什麼意思? Alt + g?不知道如何觸發JSfiddle中的事件。感謝發佈:) – tomasbarrios

+0

是的,你會尋找'if(e.keyCode == 169)'與按鍵。只需點擊「」,然後按Alt + g –

-1

你必須設置一個單獨的變量來跟蹤修飾鍵並檢查你的keydown事件。像:

events: 
    "keydown input" : "logKeyDown", 
    "keyup input" : "logKeyUp" 

logKey: (e) -> 
    if e.keyCode == 18 
     altDown = true 

    if altDown && e.keyCode == 71 
     console.log('did it!') 

logKeyUp: (e) -> 
    if e.keyCode == 18 
     altDown = false 
+0

不要你的意思'@altDown = TRUE'? –

+0

這也是個不錯的想法,認爲有一個更好的方式來做到這一點。謝謝,我會測試它是否適用於我 – tomasbarrios