「自動提案」入力があります。setTimeout関数でキーアップすると、ajax リクエストが行われます。キーがEnterの場合、検索が必要であり、候補は非表示にする必要があります。
問題は、十分に速く入力すると、 Enterキーを押したときに「自動提案」がまだ表示されることです。最初のハンドラーが実行を停止する前に2 番目の 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;
}
});