jQuery 添加和删除延迟

标签 jquery delay

如何在 jQuery 中得到这个:在延迟(3s)后使用工作代码调用一些函数,如果我在第一次调用未完成的延迟之前再次调用函数,则重置延迟并调用新的 3s。

示例:

fce MeDeday(3s) - 时间结束后 -alert("hello");

情况1:

调用 MeDelay() - 时间已到 -alert("hello")

情况2:

调用MeDelay()

距离第一次调用还剩 2 秒

重置时间并再次等待3秒,没有2秒+5秒并触发2次警报(“hello”)

调用 MeDelay() - 时间已到 -alert("hello")

最佳答案

这称为去抖动,它与节流密切相关。有一个很好的 jQuery 插件:jQuery throttle/debounce .

我认为这就是您正在寻找的用例:

function fn()
{
    alert('hello');
}

var debouncedFn = $.debounce(3000, fn);

$('#my-button').click(debouncedFn);

Demo →

关于jQuery 添加和删除延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5340053/

相关文章:

jquery - 定时 jquery/返回顶部 html css 链接

java - 延迟无法正常工作,而是在长时间延迟后执行所有操作

c - Windows中c的 sleep 功能。是否存在精度更高的函数?

javascript - jQuery mouseout 和 setTimeout

raspberry-pi - 树莓派程序延迟

javascript - 如何固定标题栏

Jquery刷新页面并加载表格

javascript - 使 a.active 与背景图像幻灯片一起工作

javascript - 如何使用后退按钮检测我的页面是否为 "resurrected"?

POST 响应时间过长