Javascript jQuery FadeIn,FadeOut垃圾邮件bug

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("

我已经输入了一些代码来淡入淡出一些div,包括一个导航器

我注意到一个错误,当你快速点击导航器,并试图通过滥发按钮在div之间快速切换时,div会被窃听,如果你检查代码,你会发现div的不透明度会下降到0.5,有时甚至是0.12,然后逐渐下降到0.0到0.09或类似的程度

这是我的代码:

$(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中删除。对不起,我现在没有时间。我想您的问题是您在旧动画完成之前启动了一个新动画。因此,如果您可以在动画期间禁用按钮,您可以避免该问题。