自动建议键盘事件不适用于 keyup 事件
auto-suggest keyboard event not working on keyup event
我正在从头开始创建自动建议。我正在使用 jquery-ajax 函数从服务器获取数据。我正在为自动建议过滤 keyup 事件的数据。
现在过滤后,我想使用键盘的箭头键浏览列表项,但问题是每次我按下箭头键时,列表都会在 keyup 事件上刷新,这会清除通过箭头键发生的选择。
我跟踪跟踪我的代码,我开始知道这个原因。
这是我的代码:
var $listItems = $('li.suggestion-item');
var key = event.keyCode,$current,
$selected = $listItems.filter('.selected');
if ( key != 40 && key != 38 ) { return key; }
$listItems.removeClass('selected');
switch(key){
case 40: // Down key
if (! $selected.length || $selected.is(':last-child')) {
$current = $listItems.eq(0).addClass('selected');
}
else {
$current = $selected.removeClass('selected').next().addClass('selected');
}
break;
case 38: // Up key
if ( $selected.length ===1 || $selected.is(':first-child') ) {
$current = $listItems.last();
}
else {
$current = $selected.prev();
}
break;
case 13:
$('.suggestion-item, .error').hide();
break;
}
} else {
$('#validline').removeClass('true');
$('.suggestion-item, .error').hide();
}
}
任何人都可以建议我解决这个问题吗?
这样试试,
$("#inputField").keyup(function(){
if(keycode!=38 || keycode!=40){
//proceed to fetch suggestion...
}else{
//proceed navigation..
}
});
我正在从头开始创建自动建议。我正在使用 jquery-ajax 函数从服务器获取数据。我正在为自动建议过滤 keyup 事件的数据。
现在过滤后,我想使用键盘的箭头键浏览列表项,但问题是每次我按下箭头键时,列表都会在 keyup 事件上刷新,这会清除通过箭头键发生的选择。
我跟踪跟踪我的代码,我开始知道这个原因。 这是我的代码:
var $listItems = $('li.suggestion-item');
var key = event.keyCode,$current,
$selected = $listItems.filter('.selected');
if ( key != 40 && key != 38 ) { return key; }
$listItems.removeClass('selected');
switch(key){
case 40: // Down key
if (! $selected.length || $selected.is(':last-child')) {
$current = $listItems.eq(0).addClass('selected');
}
else {
$current = $selected.removeClass('selected').next().addClass('selected');
}
break;
case 38: // Up key
if ( $selected.length ===1 || $selected.is(':first-child') ) {
$current = $listItems.last();
}
else {
$current = $selected.prev();
}
break;
case 13:
$('.suggestion-item, .error').hide();
break;
}
} else {
$('#validline').removeClass('true');
$('.suggestion-item, .error').hide();
}
}
任何人都可以建议我解决这个问题吗?
这样试试,
$("#inputField").keyup(function(){
if(keycode!=38 || keycode!=40){
//proceed to fetch suggestion...
}else{
//proceed navigation..
}
});