上矢印と下矢印を使用しているときにカーソル移動を停止する

結果を表示するライブ検索入力があり、結果のポップアップが表示されているときに上下の矢印を使用できますが、上下の矢印を使用してカーソルが左右に動かないようにしたいのです。私はこれを理解できません。私は幸運にも e.preventDefault()を試しました。私が試したことがここにあります:

    if(e.which == 40){

        e.preventDefault();

        current = results.find('li.hover');
        current.removeClass();
        var next = current.next('li');

        if(next.length == 0){
            next = current.parent().parent().parent().next().find('li:first');

            /* Go back to the top */
            if(next.length == 0){
                next = results.find('li:first');
            }
        }

        next.addClass('hover');
        return false;
    }

ありがとう!

5
代わりに、 .closest()ref )を使用してみてください複数の .parent()関数のうち、読みやすいようにするため)
追加された 著者 Mottie,

1 答え

このonkeyupやkeydownをバインドしていますか? keydownを使用している場合は、キーアップを使用している場合は、イベントがすでに発生していることを防ぐことができます。それ以外の場合は、e.preventDefault()が動作しているはずです。

11
追加された
奇妙な場合は、関数の終わりにfalseを返すか、別の場所でe.preventDefault()を使用します。
追加された 著者 Niels,
keydownに設定していたときに、自分のフィールドに入力を全く許可しない場合、私は live( 'keyup')を使用しています。私はどんなpreventDefaultsも持っていませんでした。
追加された 著者 mikelbring,
私は検索を分割してキーアップに入れ、矢印がキーダウンで機能するようにしなければならなかった。しかし、この答えは助けになりました!
追加された 著者 mikelbring,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript