我正在针对表单中的任何复选框更改发送 jquery $.post 请求。 我想要的是将 $.post 延迟 500 毫秒,以防用户快速选中多个复选框,以避免多个无用的请求。
这是我的代码,我添加了一个 setTimeout 函数,它似乎适用于除此 $.post 函数之外的所有函数...
var delay = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();
$(document).ready(function() {
$('.checkbox').change(function() {
delay(function(){
$.post("/?page_id=4", $("#selectors").serialize(), function(data){
$('#results').html(data);
});
});
}, 1000 );
});
知道为什么这不起作用吗?
最佳答案
这个:
$('.checkbox').change(function() {
delay(function(){
$.post("/?page_id=4", $("#selectors").serialize(), function(data){
$('#results').html(data);
});
});
}, 1000 );
应该是:
$('.checkbox').change(function() {
delay(function(){
alert('post');
$.post("/?page_id=4", $("#selectors").serialize(), function(data){
$('#results').html(data);
});
}, 1000);
});
关于jquery - 向 $.post jquery 请求添加延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5194992/