jQuery - 停止延迟fadeOut由另一个事件

时间:2013-01-11 07:59:57

标签: jquery jquery-animate settimeout delay fadeout

这是我目前的代码。它可以工作但是当运行另一个事件时(例如通过单击按钮)我需要它来停止并重置fadeOut。

代码

$('#selector').delay(5000).fadeOut('slow');
  • 我读过我需要使用animatesetTimeOut代替delay
  • 这样做的最佳方式是什么?

示例

在我的情况下,我在屏幕顶部有一个状态栏,如果我点击更新状态栏的内容,它就不会消失。

3 个答案:

答案 0 :(得分:3)

重置计时器

在设置计时器之前调用此方法。如果我像疯了一样点击,它会阻止计时器芬兰语。它会停止并重置计时器。

clearTimeout(my_timer);

设置计时器

my_timer = setTimeout(function () {
    $('#selector').fadeOut('slow');
}, 5000);

答案 1 :(得分:1)

只需在淡入淡出元素上调用.stop()方法:( #selector2是停止淡入淡出的按钮)

$('#selector2').click(
    function()
    {
        $('#selector').stop();
    }
);

答案 2 :(得分:0)

查看函数clearQueue() https://api.jquery.com/clearQueue/