2013-03-20 48 views
0

直到前一个完成才执行。如果快速点击,脚本不正确。如果我点击几次,该功能将被执行而无需等待完成。它变得凌乱。直到上一个事件完成才执行函数(单击)

$(".vid1 .next, .vid2 .next").click(function(){ 
     $(".type2").find(".crop").find(".left").find("div:last").clone().insertAfter($(".type1").find(".crop").find(".left").find("div:last")); 
     $(".type2 .crop .left div:first").animate({marginLeft: '0px'}, 0); 
     $(".type1").find(".crop").find(".left").find("div:first").clone().insertBefore($(".type2").find(".crop").find(".left").find("div:first")); 
     $(".type2").find(".crop").find(".left").find("div:first").animate({marginLeft: '0px'}, 0); 
     $(".type1").find(".crop").find(".left").find("div:first").animate(
      {marginLeft: '0px'}, { 
      duration: 500, 
      complete: function() { 
      $(".type1").find(".crop").find(".left").find("div:first").remove(); 
      $(".type1").find(".crop").find(".left").find("div:first").animate({marginLeft: '208px'}, 0); 
      } 
      }); 
     $(".type2").find(".crop").find(".left").find("div:first").animate(
      {marginLeft: '208px'}, { 
      duration: 500, 
      complete: function() { 
      $(".type2").find(".crop").find(".left").find("div:last").remove(); 
      } 
      }); 
    }); 

回答

1

您可以在启动时,请单击一个变量初始化为,在完全恢复它

每次他来点击时,检查是否为真,然后退出该功能。

var isClicking=false; 

$(".vid1 .next, .vid2 .next").click(function(){ 

    if(isClicking) 
    return; 
    isClicking=true; 
     $(".type2").find(".crop").find(".left").find("div:last").clone().insertAfter($(".type1").find(".crop").find(".left").find("div:last")); 
     $(".type2 .crop .left div:first").animate({marginLeft: '0px'}, 0); 
     $(".type1").find(".crop").find(".left").find("div:first").clone().insertBefore($(".type2").find(".crop").find(".left").find("div:first")); 
     $(".type2").find(".crop").find(".left").find("div:first").animate({marginLeft: '0px'}, 0); 
     $(".type1").find(".crop").find(".left").find("div:first").animate(
      {marginLeft: '0px'}, { 
      duration: 500, 
      complete: function() { 
      $(".type1").find(".crop").find(".left").find("div:first").remove(); 
      $(".type1").find(".crop").find(".left").find("div:first").animate({marginLeft: '208px'}, 0); 
      } 
      }); 
     $(".type2").find(".crop").find(".left").find("div:first").animate(
      {marginLeft: '208px'}, { 
      duration: 500, 
      complete: function() { 
      $(".type2").find(".crop").find(".left").find("div:last").remove(); 
      isClicking=false; 
      } 
      }); 
    }); 
+0

谢谢!有用! – COSTADOR 2013-03-20 13:56:49

+0

不客气:) – 2013-03-21 06:47:10

+0

为什么投下来?? – 2013-04-09 08:46:16

0

首先尝试禁用按钮,使完成后的按钮。

$(".vid1 .next, .vid2 .next").click(function(){ 
$(this).attr("disabled", true); 
$(".type2").find(".crop").find(".left").find("div:last").clone().insertAfter($(".type1").find(".crop").find(".left").find("div:last")); 
     $(".type2 .crop .left div:first").animate({marginLeft: '0px'}, 0); 
     $(".type1").find(".crop").find(".left").find("div:first").clone().insertBefore($(".type2").find(".crop").find(".left").find("div:first")); 
     $(".type2").find(".crop").find(".left").find("div:first").animate({marginLeft: '0px'}, 0); 
     $(".type1").find(".crop").find(".left").find("div:first").animate(
      {marginLeft: '0px'}, { 
      duration: 500, 
      complete: function() { 
      $(".type1").find(".crop").find(".left").find("div:first").remove(); 
      $(".type1").find(".crop").find(".left").find("div:first").animate({marginLeft: '208px'}, 0); 
      } 
      }); 
     $(".type2").find(".crop").find(".left").find("div:first").animate(
      {marginLeft: '208px'}, { 
      duration: 500, 
      complete: function() { 
      $(".type2").find(".crop").find(".left").find("div:last").remove(); 
      } 
      }); 
    $(this).removeAttr("disabled"); 
    }); 
相关问题