2

当焦点位于 JQuery 对话框中的按钮上时,空格键会做两件事:选择按钮和滚动窗口。熟悉空格键作为选择按钮的工具的人会期待第一个,但会发现第二个不和谐且不合适。

所以问题是:如何防止页面滚动?我曾认为这只是从按钮处理程序返回 false 的问题,但这似乎不是真的。

4

1 回答 1

8

我已经尝试过这里和其他地方建议的解决方案,但没有一个对我有用。最终起作用的是一个文档范围的 keydown 处理程序,如下所示:

$(document).keydown(function (e) {
    var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
    if ((key == 32) && (e.target.className != null) && (e.target.className.indexOf("ui-button") != -1))
       e.preventDefault();
 });

key == 32 显然是对空格键的检查。className 用于检查所讨论的 UI(用户界面)元素是否是 JQuery 按钮。如果没有按钮检查,空格键在任何地方都被禁用。

于 2012-04-23T14:58:50.627 回答