我正在对表单中的任何复选框更改发送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 );
});
Run Code Online (Sandbox Code Playgroud)
知道为什么这不起作用吗?