2

JQuery ダイアログのボタンにフォーカスがある場合、スペース バーはボタンの選択とウィンドウのスクロールという 2 つのことを行います。ボタンを選択するためのツールとしてスペース バーに慣れている人は、最初のボタンは期待しますが、2 番目のボタンは耳障りで不適切だと感じます。

質問: ページがスクロールしないようにするにはどうすればよいですか? ボタンハンドラからfalseを返すだけだと思っていましたが、そうではないようです。

4

1 に答える 1

8

ここや他の場所で提案されている解決策を試しましたが、どれもうまくいきませんでした。最終的に機能したのは、次のようなドキュメント全体のキーダウン ハンドラーでした。

$(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 ボタンであるかどうかのチェックです。ボタン チェックがないと、スペース バーはどこでも無効になります。

于 2012-04-23T14:58:50.627 に答える