2011-09-12 46 views
1

我遇到的問題是我有一個div,其中有三個隱藏的span標籤(用作標籤)和jquery我使用mouseover函數爲這些標籤之一設置動畫。jquery函數首先需要取消其他函數

我想知道是否有一種方法來停止/取消已經運行的功能。即,如果我快速轉到第二個鼠標懸停事件,動畫似乎排隊,這意味着當我離開時可能會有動畫仍在發生。

理想情況下,新按鈕上的mouseover事件會殺死當前正在運行的動畫。

+0

我們可以看到你寫的,所以我們可以用jQuery的幫助一些代碼? –

回答

3

是:stop功能。這會停止當前的動畫。

如果你想刪除所有當前排隊的元素,你必須通過第一個參數true。如果你想跳到當前動畫的結尾(通常是一個好主意),你應該傳遞第二個參數true

那麼您的通話將可能看起來有點像這樣:

$('#someEl').mouseenter(function() { 
    $(this) 
     .stop(true, true) // stop any currently existing animations 
     .animate({  // and then start a new one 
      marginLeft: '20px' 
     }, 250); 
}); 
+0

在停止所有事情之後,剩下的邊距動畫會發生什麼? – Ben

+0

@Ben是:更新代碼以使其更清晰。 – lonesomeday

+0

謝謝。雖然現在在我的頁面上,它似乎並沒有停止。即我仍然可以穿過他們,當我在第三時間我仍然看到第二個彈出並保持 – Ben

2

是的,有一個在jQuery的一個功能。試試這個:

$('#divId').hover(function() { 
$(this).find('#img1').stop(true, true).slideUp(); 
$(this).find('#img2').stop(true, true).slideDown(); 
}, function() { 
$(this).find('#img1').stop(true, true).slideDown(); 
$(this).find('#img2').stop(true, true).slideUp(); 
}); 
相關問題