1

以下のコードは、Chrome と Safari でブラウザのデフォルトが起動するのを防ぐのに効果的です。しかし、何らかの理由で、Firefox で矢印キーを押してもコードが起動しません。

$(window).keydown(function(e) {
    switch(e.which){
        case 39: //right arrow key
            e.preventDefault();
            $('body').scrollLeft(scrollNow + z(10));
            break;
        case 37: // left arrow key
            e.preventDefault();
            $('body').scrollLeft(scrollNow - z(10));
            break;
    }
});

私もreturn false;代わりに試してみましe.preventDefault();たが、効果がありませんでした。e.preventDefault();行の後に入れてみましscrollLeftたが、うまくいきません。何か案は?

4

4 に答える 4

2

これを試して:

$(window).keydown(function(e) {
    switch(e.keyCode){
        case 39: //right arrow key
            e.preventDefault();
            $('body').scrollLeft(scrollNow + z(10));
            break;
        case 37: // left arrow key
            e.preventDefault();
            $('body').scrollLeft(scrollNow - z(10));
            break;
    }
});
于 2013-06-20T16:48:21.627 に答える
2

これを試して -

code = e.keyCode || e.which;
switch(code){
于 2013-06-20T16:46:24.567 に答える
1

私はちょうどこの問題に出くわしました。選択入力の keydown イベントのイベント リスナーを追加して、左右のキーがオプションの上部と右側をそれぞれ移動するのを無効にしました。Chrome と IE で完全に動作します。私がこれまでに読んだことによると、実際にバグとして扱うべきかどうかについて多くの議論と推測がなされてきたバグであることは間違いありません。前述のキーアップの選択入力に別のイベントリスナーをアタッチすることさえしました。keydown イベント (Firefox) 内から preventDefault を呼び出した後、トリガーも発生していることに気付きました。ただし、アクションは妨げられません。かなり迷惑です。

まだ回避策を決定しようとしています。

于 2014-10-28T18:40:22.900 に答える