2013-02-04 57 views
1

我使用jQuery動畫效果使用jQuery,動畫結束後,我觸發效果,由於某種原因效果被觸發兩次,我怎樣才能防止它發生?jQuery動畫在運行時觸發兩次回調

$('.something').on('click', function() { 
      $('html, body').animate({ 
       scrollTop: $('footer').offset().top 
      }, { 
       queue: false, 
       duration: 1500, 
       complete: function() { 
        $('.foo').toggleClass('active'); 
        $('.bar').slideToggle();  
       } 
      });     
      return false; 
     }); 

slideToggle效果似乎被觸發兩次。 我在html & body上設置了動畫,因爲從'body'生成的動畫在IE8中不起作用。

回答

4

由於您觸發了兩個動畫(在html和body上),應該調用兩次完整的回調函數。

你可能想在觸發只有當它需要在HTML動畫

var animateOn = isIE8 ? 'html' : 'body'; 
$(animateOn).animate(); 
+0

固定我的問題,謝謝! – Stephen