0

プロジェクト内でキーボード ナビゲーションを作成するために、WordPress 内のホット キー機能を使用しています。キーボード機能は動作していますが、何らかの理由で、前のプロジェクトに移動するのではなく、次のプロジェクトにスクロールするだけです。マウスで物理的に矢印をクリックすると、すべて正常に動作しますが、何らかの理由でキーボードを使用すると動作しません。

プロジェクトへのリンクはこちら

http://geoffgeoff.com/dialect-skateboards-identity/

これは私のjsコードです

$(document).ready(function () {

    // This uses the Hotkeys jQuery plugin. See below for
    // the native jQuery alternative.
    $(document).bind('keydown', 'left', function() {
        var url = $('#left_arrow a').attr('href');
        if (url) {
            window.location = url;
        }
    });
    $(document).bind('keydown', 'right', function() {
        var url = $('#right_arrow a').attr('href');
        if (url) {
            window.location = url;
        }
    });

});
4

1 に答える 1

0

この方法でキーを割り当てることはできません。実際には、2つの関数をglobal-keydown-eventにバインドしているので、2番目の関数が最初の関数を上書きします。サイトにアクセスしている間は、任意のキーを押してみてください。すべてのキーで次の記事が読み込まれます。

正しい方法は、関数内で押されたキーを検出してから、正しいアンカー要素のクリックをトリガーすることです。

$(document).bind('keydown', function (evnt) {

    var elem = evnt.keyCode === 37 // left arrow
        ? '#left_arrow a'
        : evnt.keyCode === 39 // right arrow
        ? '#right_arrow a'
        : false;

    if ( !elem ) {
        return;
    }

    $(elem).trigger('click');

});

keyCodeが37の場合は左矢印が押され、keyCodeが39の場合は右矢印が押されました。三項演算子を使用すると、左も右もクリックされなかった場合に、elem変数にfalseを割り当てることができます。この場合、関数はfalseを返し、何も起こりません。

それ以外の場合は、左アンカーまたは右アンカーのクリックイベントがトリガーされます。

于 2012-06-24T15:17:48.057 に答える