我有一个小的 jquery 片段,它在屏幕顶部显示通知消息以响应页面上的用户操作。通知通常在 Ajax 操作之后显示,其中包含动态内容。
例如:
$("#mini-txt").html("Thank you!");
$("#mini").fadeIn("fast");
setTimeout(function() {$("#mini").animate({height: "hide", opacity: "hide"}, "medium");}, 3000);
通知效果很好,除非用户快速连续执行两个或更多操作,在这种情况下,TimeOut 函数会混淆自身,第二条消息似乎在前 3000 毫秒内出现。
如果执行新操作,是否有办法“终止”先前的通知。我对操作/选择器没有任何问题,只是 TimeOut 函数....要么停止它,要么以某种方式覆盖它。或者也许有更好的替代方法让消息在屏幕上停留几秒钟然后消失?
谢谢。
最佳答案
首先,您存储 setTimeout
函数的返回值:
// Set the timeout
var timeout = setTimeout(function()
{
// Your function here
}, 2000);
然后,当您准备好取消超时时...您只需使用上次调用 setTimeout
时存储的值调用 clearTimeout
。
// Then clearn the timeout
clearTimeout(timeout);
关于javascript - 如何停止/覆盖 Jquery TimeOut 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2578628/