2013-03-20 45 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"); 
    }); 
相關問題