use*_*289 6 javascript navigation user-interface keyboard-shortcuts ruby-on-rails
有谁知道如何在我的网站上使用Ruby on Rails设置键盘快捷键?例如,如果用户想要使用键盘快捷键与站点进行交互而不是单击按钮/链接,我该怎么做?
最简单的方法是accesskey为元素的属性设置一个值.如果你想通过Rails做到这一点,你可以通过向submit_taghelper方法传递一个额外的选项来做到这一点,如下所示:
<%= submit_tag("Save and Refresh", :accesskey => "R") %>
// Equivalent to <input type="submit" value="Save and Refresh" accesskey="R" />
Run Code Online (Sandbox Code Playgroud)
当按下Alt+ R(或Alt+ Shift+ R,取决于您的浏览器)时,这将导致该按钮被"点击" .该accesskey属性可用于<input>,<button>和<a>HTML元素.
如果你想做一些更复杂的事情(例如GMail的键盘快捷键),你将不得不写一些javascript.它的核心是一个事件处理程序,它监视文档上的按键,然后调用其他javascript函数来运行按下某个键时所需的代码.这是一种基于按键设置快捷方式的非常简单的方法(这使用Prototype,它是Rails默认使用的Javascript库,未经测试):
$(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;
// ...
}
});
Run Code Online (Sandbox Code Playgroud)
这是另一个在Javascript中处理键盘快捷键的SO 问题.
请注意,这些解决方案都不依赖于Rails.
| 归档时间: |
|
| 查看次数: |
3168 次 |
| 最近记录: |