2015-03-03 70 views
0

的toggleClass(「顯示,彈出隱藏-彈出」)當動畫完成由$(parent).toggleClass('opened closed');我怎麼能執行一個功能之後toggleClass與jQuery UI的

我怎樣才能做到這一點觸發只應叫什麼名字?

*$('.drawer-left-trigger').click(function() { 
      var parent = $(this).parent(); 
      $(parent).toggleClass('opened closed'); 
      $(parent).toggleClass('show-flyout hide-flyout') 
     });* 

這並沒有幫助:

$('.drawer-left-trigger').click(function() { 
      var parent = $(this).parent(); 
      $(parent).toggleClass('opened closed',function(){ 

        $(parent).toggleClass('show-flyout hide-flyout'); 
      }); 

     }); 
+0

這是一個CSS動畫? – 2015-03-03 10:25:20

+0

第一個選項有什麼問題? – 2015-03-03 10:25:45

+0

請讓我知道,如果它仍然不起作用 – 2015-03-03 10:33:45

回答

0

試試這個

$(parent).toggleClass('opened closed').promise().done(function(){ 
    setTimeout(function(){ 
     $(parent).toggleClass('show-flyout hide-flyout'); 
    },1000); 

    }); 
+0

這我也試過在另一個SO解決方案中發現了提示,但仍然在側邊欄打開時立即應用show-flyout類。它應該只在側欄打開時應用。 – HelloWorld 2015-03-03 10:28:53

+0

好吧,那麼你可以嘗試與傳遞時間到1000或其他功能 – 2015-03-03 10:29:47

+0

嘗試一件事我更新我的答案,請檢查,以及讓我知道 – 2015-03-03 10:30:48

0

我猜你是使用CSS動畫的開啓/關閉,所以你應該聽時動畫結束,如:

$(parent).one('transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEndfunction', function() { 
    $(parent).toggleClass('show-flyout hide-flyout'); 
}); 
+0

我用於關閉打開=>過渡:全部.35s緩出; – HelloWorld 2015-03-03 10:32:30

+0

是的CSS所以嘗試我的代碼 – 2015-03-03 10:34:12

+0

只是編輯,以適應過渡,而不是動畫 – 2015-03-03 10:35:24

相關問題