Навигация с помощью клавиатуры в лайтбоксе / распознавание "onkeypress" как "onclick"

Я пытаюсь перемещаться с помощью стрелок влево / вправо через мой лайтбокс, но мой скрипт не работает.
Было бы здорово, если скрипт распознает "onkeypress" как "onclick", потому что я должен использовать "onclick" для статистики Google Analytics.
Любая идея? Благодарю.

Сценарий:

jQuery(function( $ ) {
var keymap = {};


keymap[ 37 ] = ".prev";

keymap[ 39 ] = ".next";

$( document ).on( "keyup", function(event) {
    var href,
        selector = keymap[ event.which ];
    if ( selector ) {
        href = $( selector ).attr( "href" );
        if ( href ) {
            window.location = href;
          }
        }
    });
});

HTML:

<li>
  <a href="#example-01" onclick="_gaq.push(['_trackPageview', location.pathname + location.search + '#example-01']);"><img src="images/thumbs/example-01.jpg" /></a>
    <div class="lb-overlay" id="example-01">
        <img src="images/full/example-01.jpg" />
                <div>
                    <a href="#example-00" onclick="_gaq.push(['_trackPageview', location.pathname + location.search + '#example-00']);" class="prev">PREV</a>
                    <a href="#example-02" onclick="_gaq.push(['_trackPageview', location.pathname + location.search + '#example-02']);" class="next">NEXT</a>
                </div>
     </div>
 </li>

2 ответа

Решение

Этот код работает для моей проблемы:

var current = 0;
    $(document).on('keyup', function (e) {
        switch (e.which) {
            case 37:
                $('.lb-prev')[--current].click();
                break;

            case 39:
                $('.lb-next')[++current].click();
                break;
    }
});

Я бы сказал, попробуйте:

$('body').on('keyup', function (e) {
    switch (e.which) {
        case 37:
            $('.prev')[0].click();
            break;

        case 39:
            $('.next')[0].click();
            break;
    }
});
Другие вопросы по тегам