Навигация с помощью клавиатуры в лайтбоксе / распознавание "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;
}
});