如何在 jQuery 中延迟按键之间的操作。 例如;
我有这样的东西
if($(this).val().length > 1){
$.post("stuff.php", {nStr: "" + $(this).val() + ""}, function(data){
if(data.length > 0) {
$('#suggestions').show();
$('#autoSuggestionsList').html(data);
}else{
$('#suggestions').hide();
}
});
}
如果用户连续输入,我想阻止发布数据。那么我怎样才能延迟0.5秒呢?
最佳答案
您可以使用 jQuery 的数据功能来执行此操作,如下所示:
$('#mySearch').keyup(function() {
clearTimeout($.data(this, 'timer'));
var wait = setTimeout(search, 500);
$(this).data('timer', wait);
});
function search() {
$.post("stuff.php", {nStr: "" + $('#mySearch').val() + ""}, function(data){
if(data.length > 0) {
$('#suggestions').show();
$('#autoSuggestionsList').html(data);
}else{
$('#suggestions').hide();
}
});
}
这里的主要优点是没有全局变量,如果您愿意,您可以将其包装在 setTimeout 中的匿名函数中,只是想让示例尽可能干净。
关于jquery - jQuery 中按键之间的延迟 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2410937/