2012-04-14 76 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

相關問題