我需要一些帮助..
是否可以取消链接延迟?
Mn.Base.TopBox.show = function(timedur){
$('#element').fadeIn().delay(timedur).fadeOut();
}
Mn.Base.TopBox.cancelFadeout = function(){
}
我阅读了有关排队的内容并尝试了一些不同的方法,但没有成功......
$('#element').stop();
$('#element').queue('fx', []);
提前致谢,
Pedro
原来不是,.delay() http://api.jquery.com/delay/与其他任何东西都不能很好地配合,因为计时器一直在滴答作响并且.dequeue() http://api.jquery.com/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'));
}
它的作用是设置计时器并使用它存储它$.data() http://api.jquery.com/jQuery.data/,当清除动画时,我们都在调用.stop() http://api.jquery.com/stop/停止正在进行的任何事情,and停止那个计时器。
还有那个潜在的如果您非常快速地触发此问题,请在此处解决问题,在这种情况下,您需要切换到存储延迟数组,并将它们全部清除。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)