jquery - 向 $.post jquery 请求添加延迟

标签 jquery post delay

我正在针对表单中的任何复选框更改发送 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 );

});

知道为什么这不起作用吗?

最佳答案

Live example

这个:

$('.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/

相关文章:

jQuery:我可以在 addClass() 等之间调用 delay() 吗?

javascript - 延时功能不起作用?

c# - 通过表单发布上传图片

mouse - Box2d:无惯性延迟的鼠标关节

javascript - 如何使滚动到顶部的 Action 更流畅

javascript - 如何使用jquery添加开始html标签?

javascript - 使折叠下的文本在切换隐藏显示时不移动

JavaScript/JQuery : innerHTML Not Working

Python:仅使用原始字符串发送 POST 请求

php - 分页和 $_POST