jQuery FadeIn,FadeOut垃圾邮件错误

时间:2013-10-15 17:38:15

标签: 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("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();

});

这是一个小提琴:http://jsfiddle.net/b5PfE/

尝试向导航按钮发送垃圾邮件,直到您看到div几乎没有淡入或淡出。

有关如何修复它的任何建议吗?

1 个答案:

答案 0 :(得分:0)

这就是我通常解决的问题:

  1. 将一个班级添加到&#34;已激活&#34;
  2. 的#fade_nav范围内
  3. 使用$(&#39; .activated&#39;)。live(&#39;点击&#39;,功能(事件){//});开始你的功能
  4. 在该函数中,首先从#fade_nav中删除激活的类。这样可以防止在动画过程中按钮被点击。
  5. 在函数结束时,重新添加.activated类,以便再次单击按钮。