2010-03-01 369 views

回答

1

這對jquery來說很不錯。

https://github.com/jeresig/jquery.hotkeys

+0

我已經下載了該文件並進行了檢查。這是一個使用[jquery.hotkeys]的例子(https://github.com/jeresig/jquery.hotkeys) – 2012-10-01 13:48:57

+0

@NikolaPetkanski - 我更新了鏈接。 – 2012-10-01 14:28:58

+0

謝謝。我已經刪除了我的-1分。 – 2012-10-01 15:54:02

1

大量的JavaScript庫都充滿了捕捉鍵盤輸入,並用它來你的優勢的途徑。這是一個很好的選擇,你將能夠找到一個圖書館來做到這一點,沒有別的。但是,我沒有很多經驗。

我一直在使用Ext一段時間,他們的KeyMap類真的很容易處理。這是一個使用它的簡單例子。

new Ext.KeyMap(Ext.getDoc(), { 
     key: 'abc', 
     alt: true, 
     handler: function(k, e) { 
      var t = Ext.getCmp('tabpanel'); 
      switch(k) { 
       case 65: 
        t.setActiveTab(0); 
        break; 
       case 66: 
        t.setActiveTab(1); 
        break; 
       case 67: 
        t.setActiveTab(2); 
        break; 
      } 
     }, 
     stopEvent: true 
    }); 

這需要一流的,Ext.TabPanel,並允許用戶按一個鍵盤鍵來更改標籤,而不是點擊標籤本身。

它當然可以做得比這更多。這是它如何工作的簡單例子。

9

嘗試KeyboardJS

它的那樣簡單

KeyboardJS.on('a', function(){ alert('hello!'); }); 

又靈活,因爲

var bindInstance = KeyboardJS.on('ctrl + a, ctrl + b, c', function(event, keysPressedArray, keyComboString){ 

    //you get the event object 
    console.log('event object', event); 

    //you get the keys pressed array 
    console.log('keys pressed', keysPressedArray); 

    //you get the key combo string 
    console.log('combo pressed', keyComboString); 

    console.log('I will fire when \'ctrl + a\' or \'ctrl +b\' or \'c\' is pressed down'); 

    //block event bubble 
    return false; 

}, function(event, keysPressedArray, keyComboString) { 

    console.log('I will fire on key up'); 

    //block event bubble 
    return false; 

}); 

您可以通過調用

bindInstance.clear(); 

可以清除所有與特定鍵結合與

KeyboardJS.clear('a, b'); 

其開源和可在Github清除結合。它來自全球庫或RequireJS的AMD模塊。

這裏是introduction video

那裏,現在不用擔心鍵盤和代碼您的應用程序。 ;)

+0

看起來像一個非常棒的腳本,但最好的我可以告訴它它不工作在IE8中,這對我來說可能是一個問題(在幾個層面上)。當我使用IE8訪問http://robertwhurst.github.com/KeyboardJS/時,它只是說「JS是必需的」。 – 2012-08-08 17:56:47

+0

該演示可能無法在IE中運行,但該庫應該運行。它之前做了一對夫婦。你是否嘗試過圖書館? – 2012-08-09 18:02:55

+0

我沒有。我會試一試。有沒有調整演示需要炫耀,可以處理所有的瀏覽器?我很樂意在演示頁面上進行分叉和調整併發送拉取請求。 – 2012-08-09 18:13:06

29

只是另一個投入混合。我最近發佈了一款名爲Mousetrap的產品。您可以在http://craig.is/killing/mice

+0

感謝您分享! – 2012-10-01 15:53:14

+0

它很容易實現,像魅力一樣工作。在商業項目中使用許可證的方式如何? – 2013-08-07 15:51:09

+2

它使用Apache 2.0許可證。 – Craig 2013-08-07 19:08:44

2

檢查出的例子從我所看到的捕鼠器是,它可以讓你指定鍵序列而不是組合的唯一庫。這對我的應用非常方便。