Javascript jQuery FadeIn,FadeOut垃圾邮件bug
我已经输入了一些代码来淡入淡出一些div,包括一个导航器 我注意到一个错误,当你快速点击导航器,并试图通过滥发按钮在div之间快速切换时,div会被窃听,如果你检查代码,你会发现div的不透明度会下降到0.5,有时甚至是0.12,然后逐渐下降到0.0到0.09或类似的程度 这是我的代码:Javascript jQuery FadeIn,FadeOut垃圾邮件bug,javascript,jquery,Javascript,Jquery,我已经输入了一些代码来淡入淡出一些div,包括一个导航器 我注意到一个错误,当你快速点击导航器,并试图通过滥发按钮在div之间快速切换时,div会被窃听,如果你检查代码,你会发现div的不透明度会下降到0.5,有时甚至是0.12,然后逐渐下降到0.0到0.09或类似的程度 这是我的代码: $(document).ready(function(){ var currentDiv = $("#fading_divs div:first"); currentDiv.css("
$(document).ready(function(){
var currentDiv = $("#fading_divs div:first");
currentDiv.css("display","block");
var divN = $("#fading_divs div").length;
var fadeInterval;
for(i=0; i<divN; i++){
$('<span />').text(i+1).appendTo('#fade_nav');
}
$('#fade_nav span').eq(0).addClass('active');
$('#fade_nav span').click(function(){
clearInterval(fadeInterval);
$('#fade_nav span').removeClass('active').eq( $(this).index() ).addClass('active');
currentDiv.fadeOut({duration:1000,queue:false});
currentDiv = $("#fading_divs div").eq( $(this).index() );
currentDiv.fadeIn({duration:1000,queue:false});
anim();
});
function anim() {
fadeInterval = setInterval(function(){
currentDiv.fadeOut({duration:1000,queue:false});
if(currentDiv.next().length)
currentDiv = currentDiv.next();
else
currentDiv = currentDiv.siblings().first();
$('#fade_nav span').removeClass('active').eq( currentDiv.index() ).addClass('active');
currentDiv.fadeIn({duration:1000,queue:false});
}, 4000);
}
anim();
});
$(文档).ready(函数(){
var currentDiv=$(“#衰落#div div:first”);
当前div.css(“显示”、“块”);
var divN=$(“#淡入#淡入#淡入#淡入#淡入#淡入#淡入#淡入#淡入#;
var fadeInterval;
对于(i=0;i这是我通常解决此类问题的方式:
在“激活”的“淡入淡出”导航范围中添加一个类
使用$('.activated').live('click',function(event){/});启动函数
在该功能中,首先从#淡入#导航中删除激活的类。这将防止在动画中单击按钮
在函数结束时,重新添加.activated类,以便再次单击按钮
如果可能的话,请给我一个JSFIDLE,我有点失去了您:/BTW。live()
已被弃用并从1.9中删除。对不起,我现在没有时间。我想您的问题是您在旧动画完成之前启动了一个新动画。因此,如果您可以在动画期间禁用按钮,您可以避免该问题。