jQuery の trigger() メソッドを使用して、画像ギャラリーに矢印ナビゲーションを適用しようとしていました。
別のstackoverflowユーザーからその例を入手しましたが、問題ないように見えましたが、リスト項目に実際のリンクを追加すると、矢印キーが押されたときではなく、クリックされたときにのみ読み込まれました。
この JSfiddle では、最後の 2 つのリスト項目 "apple" と "microsoft" に実際のリンクがあり、矢印キーでアクティブ化されたときにページを iFrame にロードする必要がありますが、そうではありません。クリックしたときにのみ適切に機能します。
キーを押した回数とクリックした回数を同じにするにはどうすればよいですか?
var chosen = "";
$(document).keydown(function(e){ // 38-up, 40-down
chosen = $('li.selected').index(); //grab the current selection
if (e.keyCode == 40) {
if(chosen === "") {
chosen = 0;
} else if((chosen+1) < $('li').length) {
chosen++;
}
selectImage(chosen);
return false;
}
if (e.keyCode == 38) {
if(chosen === "") {
chosen = 0;
} else if(chosen > 0) {
chosen--;
}
selectImage(chosen);
return false;
}
});
function selectImage(whichIndex) {
$('li:eq('+whichIndex+') a').trigger("click");
}
$("#selection a").click(function() {
$('li').removeClass('selected');
$(this).parent().addClass('selected');
$("#debug").text( $(this).attr("href") +" was just clicked");
});