2011-10-25 69 views
8

我想知道jQuery傳輸效果是否有任何回調機制,通過這種機制我可以確定傳輸效果何時開始以及何時結束。我得到了下面的代碼,但我發現沒有回調函數...jQuery傳輸效果和回調函數

請幫忙。謝謝。

$("div").click(function() { 
    var i = 1 - $("div").index(this); 
    $(this).effect("transfer", { to: $("div").eq(i) }, 1000); 
}); 

回答

12

假設你正在談論的jQuery UI的effect方法,那麼它需要一個callback函數作爲參數。當該效果已完成了回調將運行:

$(this).effect("transfer", { to: $("div").eq(i) }, 1000, function() { 
    //Done! 
}); 

至於效果開始時,調用effect以下行應立即調用(所以之前的效果完成)後運行。

+0

有什麼方法可以在效果開始和效果結束之前確定。有一個回調選項,那麼如何才能通過一個回調來確定star和end效果......如果用戶想在效果開始和效果結束之前做一些事情,那麼如何編寫代碼......請告知謝謝。 –

+0

正如我在回答中所說的那樣,當效果結束時,回調就會運行。無法提供在效果之前運行的函數,但您可以在調用「效果」之前調用它。或者就此而言 - 隨着效果的發生,執行將會繼續。 –

2

"Transfer effect"的文檔沒有聲明,但effect的文檔確實指出可以指定回調。顯然這是完成回調。

effect(effect, [options], [speed], [callback]) 

至於什麼時候開始,你必須假設是「立即」。

+0

有什麼方法可以在效果開始和效果結束之前確定。有一個回調選項,那麼如何才能通過一個回調來確定star和end效果......如果用戶想在效果開始和效果結束之前做一些事情,那麼如何編寫代碼......請告知謝謝。 –