我有下一个代码,它运行良好,问题是当用户写完单词时,脚本不断创建后调用并不断更改建议列表。
我想做一些事情,如果用户继续写一个单词,脚本会停止所有的 post 调用,只执行最后一个。
$("#inputString").keydown(function() {
lookup($(this).val());
//alert('a');
});
function lookup(inputString) {
if(inputString.length == 0) {
$('#suggestions').fadeOut(); // Hide the suggestions box
} else {
$.post("../jsonshow.php", {q: ""+inputString+""}, function(data) { // Do an AJAX call
$('#suggestions').fadeIn(); // Show the suggestions box
$('#suggestions').html(data); // Fill the suggestions box
});
}
}
您可以使用设置超时时间 https://developer.mozilla.org/en-US/docs/DOM/window.setTimeout设置击键之间的一定时间,以便在帖子发生之前允许。 - 然后使用每次击键清除计时器清除超时 https://developer.mozilla.org/en-US/docs/DOM/window.clearTimeout
var action;
$('#inputString').keydown(function(){
clearTimeout(action);
var $el = $(this);
action = setTimeout(function(){
lookup($el.val());
},1000); // <-- amount of time in ms before your post will run
});
http://jsfiddle.net/gunuW/ http://jsfiddle.net/gunuW/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)