2010-01-15 59 views

回答

1

最簡單的方法是爲元素的accesskey屬性設置一個值。如果你想通過Rails的做到這一點,你可以通過傳遞一個額外的選項給submit_tag helper方法做到這一點,像這樣:

<%=submit_tag("Save and Refresh", :accesskey => "R") %> 
// Equivalent to <input type="submit" value="Save and Refresh" accesskey="R" /> 

這將導致該按鈕是「點擊」當Alt + R(或按Alt + Shift + R,取決於您的瀏覽器)。 accesskey屬性可用於<input>,<button><a>HTML元素。

如果您正在尋找更復雜的東西(例如GMail的鍵盤快捷鍵),您將不得不編寫一些javascript。它的核心將是一個事件處理程序,它監視文檔上的按鍵,然後調用其他JavaScript函數來運行您按下某個鍵時所需的代碼。下面是基於一個按鍵(這使用原型,這是Javascript庫,默認情況下Rails的用途,並且是未經測試)的設置快捷方式的一個非常簡單的方法:

$(document.body).observe("keypress", function(event) 
{ 
    var keyCode = event.which || event.keyCode; // W3C and Microsoft's event models 
               // have differing ways of 
               // determining which key was pressed 
    var keyChar = String.fromCharCode(keyCode); // turn a code into an actual character 

    switch (keyChar) 
    { 
    case 'a': 
     // Run code if the user presses 'a' 
     break; 

    // ... 
    } 
}); 

這裏是另一個SO question與交易Javascript中的鍵盤快捷鍵。

請注意,這些解決方案都不是真的依賴於Rails。

0

Lokk在this site這是關於rails並提供了一個.js在應用程序上使用鍵盤快捷鍵。