我有一个搜索领域.现在它搜索每个keyup.因此,如果有人键入"Windows",它将使用AJAX搜索每个键盘:"W","Wi","Win","Wind","Windo","Window","Windows".
我希望有一个延迟,所以它只在用户停止键入200毫秒时搜索.
在函数中没有这个选项keyup,我试过了setTimeout,但它没有用.
我怎样才能做到这一点?
如果没有按下任何键,则触发AJAX调用的计时器.如果按下某个键,则中止最后一个计时器并添加一个新计时器.这就是我想做但却未能成功的事情.这是我的代码:
var t;
input.onkeyup = function(){
$('.confirmText').html('Checking...');
var timeStampObj = new Date()
var timeStamp = timeStampObj.getTime();
var oldTimeStamp = $(this).attr('timeStamp');//I store a timeStamp in the element
if(timeStamp < 500 + oldTimeStamp){
$(this).attr('timeStamp', timeStamp);
clearTimeout(t);
}
t = setTimeout(function(){
$.ajax({
url: 'serverScripts/settings/checkEmailAvailability.php',
data: 'email='+email,
success: function(text){
if(text == 'available'){
$('.confirmText').html('Available!');
}else{
$('.confirmText').html('Occupied!');
}
}
});
}, 500);//Half a second
$(this).attr('timeStamp', timeStamp);
}
Run Code Online (Sandbox Code Playgroud)