皆さん、入力フィールドに入力するときに jquery load() メソッドを介して要素をロードするという奇妙な状況があります。キーを押すたびに、特定のページをロードする doSearch() 関数を起動します。矢印キーが押された場合にこの doSearch() 関数を起動させたくありませんが、ロードされた要素をナビゲートするには矢印キーが必要です。
これが現在の私のコードの構造です。doSearch() 関数内でわかるように、UP または DOWN 矢印キーに対してテストしています。これらのいずれかが押された場合、load() メソッドは起動されません。ただし、別のキーが押されて load-method が結果を返す場合、ロードされた結果をナビゲートするには上矢印キーと下矢印キーが必要です。
var searchTimer = 0;
$('.searchbox').keyup(function(e) {
switch (e.keyCode) {
//case 13: // Enter
//case 38: // Up
//case 40: // Down
break;
default:
if (searchTimer != 0) {
clearTimeout(searchTimer);
}
searchTimer = setTimeout(function () {
doSearch(e.keyCode);
}, 250);
}
});
function doSearch(keyCode) {
if ($('.searchbox').val() != '') {
if (keyCode != 38 && keyCode != 40) {
searchTimer = 0;
$('#searchresults').load('/sitemap/' + ' #inner', function() {
//modify loaded elements
//key navigation through elements with UP and DOWN arrow keys
});
}
}
}
それを解決する方法はありますか?ご協力ありがとうございました。
よろしくマット