Ped*_*Gil 2 javascript jquery delay
我需要一些帮助..是否有可能取消链接延迟?
Mn.Base.TopBox.show = function(timedur){
$('#element').fadeIn().delay(timedur).fadeOut();
}
Mn.Base.TopBox.cancelFadeout = function(){
}
Run Code Online (Sandbox Code Playgroud)
我读了关于排队并尝试了一些不同的方法,但我没有成功......
$('#element').stop();
$('#element').queue('fx', []);
Run Code Online (Sandbox Code Playgroud)
提前致谢,
佩德罗
它不是,.delay()不能很好地与其他任何东西一起运行,因为计时器一直在滴答作响,并且.dequeue()在它启动时执行...无论你是否清除了队列并添加了一个全新的队列.
setTimeout()如果您打算取消,最好直接使用,例如:
Mn.Base.TopBox.show = function(timedur){
$('#element').fadeIn(function() {
var elem = $(this);
$.data(this, 'timer', setTimeout(function() { elem.fadeOut(); }, timedur));
});
}
Mn.Base.TopBox.cancelFadeout = function(){
clearTimeout($('#element').stop().data('timer'));
}
Run Code Online (Sandbox Code Playgroud)
这样做是设置计时器并使用它来存储它$.data(),并且在调用动画时,我们都要求.stop()停止正在进行的任何操作,并停止该计时器.
如果你快速解决这个问题,那么这里仍有潜在的问题,在这种情况下,你想要切换到存储一系列延迟,并清除它们.