嘿伙计们,我有这种奇怪的情况,我在输入输入字段时通过 jquery load() 方法加载元素。在每次按键时,我都会触发一个加载特定页面的 doSearch() 函数。如果按下箭头键,我不希望触发此 doSearch() 函数,但我需要箭头键来浏览加载的元素。
这是我现在的代码结构。正如您在 doSearch() 函数中看到的那样,我正在针对向上或向下箭头键进行测试。如果按下其中之一,则不会触发 load() 方法。但是,如果按下另一个键并且加载方法返回结果,我需要向上和向下箭头键来浏览加载的结果。
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
});
}
}
}
知道如何解决吗?感谢您的帮助。
问候马特