2017-08-17 51 views
-1

我已經寫了一個jQuery CLICK事件,在這種情況下有兩個代碼會在點擊事件後執行,但我想先完成第一個代碼執行,然後完成後開始執行第二個代碼。但是現在它們都在CLICK事件觸發的同時執行。我想在完成另一個代碼後執行一個代碼

第一個代碼是關於slideUp的,所以我想先完成slideUp然後開始執行第二個代碼。這裏是Fiddle

我在這裏附上了代碼和圖片,請檢查並幫助我,如果可以的話。

$(".team-item-area").on('click', function(){ 
     $(this).siblings().find('.team-item-right-para').slideUp(); 
     $(this).find(".team-item-right-para").slideToggle(function(){ 
      var check = $(this).is(":visible"); 

      if(check == true) 
      { 
       $(this).parents('.team-item-area').siblings().find('img').hide(); 
       $(this).parents('.team-item-area').find("img").fadeIn(); 
      } else { 
       $(this).parents('.team-item-area').find("img").show(); 
       $(this).parents('.team-item-area').siblings().find('img').fadeIn(); 
      } 
     }); 


    })[enter image description here][1] 
+1

[RTFM](http://api.jquery.com/slideup/#slideUp-duration-complete)。 'slideUp()'接受'onComplete'回調參數。 – BenM

+0

[jQuery - 等到SlideUp()結束的可能的重複](https://stackoverflow.com/questions/1084392/jquery-wait-till-end-of-slideup) – ednincer

回答

0

按照documentation的效果基本show函數是一旦動畫完成,將被調用的函數第二個參數。第一個參數是幻燈片的持續時間。你可以設置你想要的(400是默認值)

$(this).siblings().find('.team-item-right-para').slideUp(400, function { 
    ... code to execute after the slide is complete... 
}); 
0

或者使用中提到的解決方案@BenM或使用事端這樣之後什麼:

$(this).find(first operation) 
    .delay(1) 
    .queue(function (next) { 
     $(this).find(second operation); 
     next(); 
}); 
相關問題