当我第一次按下标签按钮时,它会起作用并且标签被阻止,但是如果我再次立即按下它,则不会阻止默认设置,并且我会从输入框中退出.
如果我输入内容然后选项卡然后键入其他内容然后选项卡,则默认情况下每次都会被阻止
问题是我不能连续两次选项卡.知道可能是什么问题吗?
$("#functionSearch").on("change propertychange keyup",function( event ) {
event.preventDefault();
console.log(event)
if (event.which == 9 ) {
console.log("TAB")
}else{
clearHighlight();
var input = $(this).val();
if(input.length > 0){
filteredArr = jQuery.grep(linksArr,function( val,index ) {
return ( val.toLowerCase().indexOf(input.toLowerCase()) != -1);
});
selectElements(filteredArr);
}
}
});
// MAY BE USEFUL
function selectElements(filteredArr){
$(filteredArr).each(function( index,link){
var id = link.split("~")[1]
$("#"+id).addClass("selected");
});
highlightFirstElement();
}
function highlightFirstElement(){
$(".selected").first().addClass("highlighted");
}
function highlightNextElement(){
$(".selected").next().addClass("highlighted");
}
function clearHighlight(){
$(".highlighted").removeClass("highlighted");
$(".selected").removeClass("selected");
}
最佳答案
在触发keyup时,TAB键可能已经完成了将焦点移到另一个元素的工作,这意味着keyup事件将在另一个元素上触发,而不是在输入字段上触发.
最简单的解决方案是监听keydown而不是keyup(参见working fiddle).