我有一个显示“下一步”的按钮,每当我点击它时,它会增加一个值并生成带回调的ajax调用。
问题在于,有时我想连续多次点击它以增加3或4,所以我反复点击“下一步”按钮。
我基本上想要一些油门,所以如果你没有在最后1秒点击“下一步”按钮或类似的东西,那么直到启动ajax调用。
这样,如果我真的很快点击它多次,它只会触发最后一个值的ajax调用。
这样做的最佳方式是什么?
答案 0 :(得分:3)
这样的事情可以解决问题:
var timer;
$('selector').on('click', function (){
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(function () {
// ajax call
}, lengthofdelay);
});
答案 1 :(得分:0)
$("#next_button").click(function() {
var now = $(this).val(); $(this).val(now++); //increment value
if (timer) {
clearTimeout(timer); //abort ajax call if button clicked within 1 sec, and start over
}
timer = setTimeout(doAjax, 1000); //do ajax call in 1 second
});
function doAjax() {
//do ajax call here
}