2008-09-12 54 views
11

的效果我有一個使用如何阻止在jQuery的

$(id).show("highlight", {}, 2000); 

當我開始一個Ajax請求以突出元素的頁面,這可能會失敗,所以,我想使用類似

$(id).show("highlight", {color: "#FF0000"}, 2000); 

在錯誤處理程序中。問題是,如果第一個突出顯示沒有完成,第二個突出顯示將排隊並且不會運行,直到第一個準備就緒。因此,問題:我能以某種方式阻止第一個效應嗎?

回答

10

從jQuery文檔:

http://docs.jquery.com/Effects/stop

停在匹配元素當前正在運行的動畫。 ...

當在元素上調用.stop()時,當前正在運行的動畫(如果有)立即停止。例如,如果一個元素被.slideUp()隱藏,當調用.stop()時,該元素現在仍然會顯示,但是會是其之前高度的一小部分。回調函數不被調用。

如果在同一元素上調用多個動畫方法,則後面的動畫放置在元素的效果隊列中。這些動畫直到第一個動畫完成纔會開始。當調用.stop()時,隊列中的下一個動畫立即開始。如果clearQueue參數的值爲true,那麼隊列中的其餘動畫將被刪除並永不運行。

如果jumpToEnd參數的值爲true,則當前動畫停止,但該元素立即被賦予其每個CSS屬性的目標值。在我們上面的.slideUp()例子中,元素會立即隱藏起來。回調函數然後立即調用,如果提供...

+0

謝謝你,我的谷歌,富似乎有一個凹痕今晚:-) – 2008-09-12 20:53:28

+2

它發生。StackOverflow適用於搜索外包:) – 2008-09-12 20:54:50

15

我列出了這作爲接受的答案評論,但我認爲這將是一個好主意,它張貼作爲一個獨立的答案,因爲它似乎要幫助有問題的一些人.stop()


僅供參考 - 我一直在尋找這個答案,以及(試圖停止跳動的影響),但我確實在我的代碼.stop()

審閱文檔後,我需要.stop(true, true)

2

.stop(真正的,真實的),所以如果它是無形的,然後它仍然是隱形的時間將凍結效果。這可能是一個問題,如果你正在使用脈動效應。

$('#identifier').effect("pulsate", {times:5}, 1000); 

爲了解決這個問題,我添加

$('#identifier').stop(true, true).effect("pulsate", { times: 1 }, 1);