3

ユーザーが上下の矢印キーを使用してドロップダウン ボックスのオプションを選択できないようにする (つまり、ユーザーにマウスのみを使用してメニュー オプションを選択させる) ための適切な jquery/javascript アプローチは何ですか? ありがとう!

4

2 に答える 2

11

#1。それをしないでください、それはユーザーエクスペリエンスを混乱させます

ただし、次の場合:

$('select').on('keydown', function(e){
    if(e.keyCode === 38 || e.keyCode === 40) { //up or down
        e.preventDefault();
        return false;
    }
});
于 2012-12-21T15:26:48.940 に答える
0

最新の FIREFOX & CHROME の場合(誰か知っていますか? ;-)

必要に応じて上矢印キーと下矢印キーの無効化を模倣するコードをいくつか適用しました。カスタム キーボード ナビゲーションを可能にするために、アプリの arrowUp / pageUp および arrowDown / pageDown キーで同様の操作を行う必要がありました (垂直メニュー ナビゲーション用に arrowLeft / arrowRight キー機能を保持しました)。setTimeout を適用したことに注意してください。これは Firefox (最新) に必要なようです:

$(document).on('keydown', 'select', function (e) {
var optsel = $(this).find('option:selected').val();
if ( (e.which == 38 || e.which === 40) ) {
setTimeout(function(){$('select option[value="' + optsel +'"]').prop("selected", true)}, 0);
}
});

トリックは、選択メニューで選択された最後の値を変数として保存し、それを Firefox で必要な (少なくとも) setTimeout メソッドで呼び出すことでした。

于 2015-03-08T21:53:07.203 に答える