2012-04-14 78 views
2

当焦点位于JQuery对话框中的按钮上时,空格键会执行两件事:它选择按钮并滚动窗口。熟悉空格键作为选择按钮的工具的人会期待第一个按钮,但会发现第二个按钮不合适。当JQuery按钮被聚焦并按下空格键时,如何防止页面滚动

所以问题:我如何防止页面滚动?我原以为这只是从按钮处理程序返回false的问题,但看起来并不正确。

回答

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(); 
}); 

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

+1

太棒了:)所以你可以标记问题解决?顺便说一句,你可以用这种方式重写var声明'var key = e.charCode || e.keyCode || 0;' – pomeh 2012-04-23 15:04:18

+0

感谢您的提醒和代码建议@pomeh! – 2012-04-26 17:41:55

相关问题