我有一个输入字段,用户输入信息,如下所示:
$('input').on("keyup", function(){
// make an ajax call
});
我希望不经常拨打电话。我该怎么办?我尝试了setTimeout
和delay()
。无法实现我的目标。有人可以帮忙吗?
答案 0 :(得分:3)
您可以使用此代码:
$('input').keyup(function(e){
var timer = $(this).data('__timer');
clearTimeout(timer);
$(this).data('__timer', setTimeout(function(e){
//Your ajax here.
console.log(e)
}.bind(this, e), 500));
})
答案 1 :(得分:1)
您可以使用计时器延迟AJAX通话,直到自上次keyup
后经过一定时间后:
$('input').keyup(function() {
// delay the search unless 0.5 seconds have passed since last keyup
clearTimeout($.data(this, 'timer'));
$(this).data('timer', setTimeout(<AJAX function call>, 500));
});