我有一个“自动建议”输入。在setTimeout函数中的keyup将发出一个 ajax 请求。如果输入了密钥,则需要进行搜索,并且应该隐藏建议。
问题是,如果我输入得足够快,当按下回车键时,“自动建议”仍然会显示。我猜第二个 keyup(enter) 是在第一个处理程序有机会停止执行之前触发的,所以首先触发搜索,然后才触发“自动建议”。
如何防止程序返回并执行第一个处理程序?
编辑
这是代码的一部分:
searchTextInput.bind("keyup.qssb", function(event){
clearTimeout(suggestTimeout);
switch(event.keyCode){
case 40: <select option down>; break;
case 38: <select option up>; break
case 13: jQuery(widget).trigger("search"); break;
default: <do some things>;
suggestTimeout = setTimeout(startSearch, 200); break;
}
});