2015-01-08 64 views
0

時動畫完成之前執行JQuery fadeIn()回調我在網站上看到很多關於此的帖子,但其中大多數是針對試圖製作多個動畫的人,我嘗試了一些解決方案並將其縮小爲這一點,我有一個箱我想褪色,出於某種原因,如果我把函數的代碼直接它的工作原理:當調用函數

$(document).ready(function(){ 
    $('#div3').fadeIn(1000, function(){alert('Done')}); 
}); 

但是,如果我打電話,做同樣的事情的功能,它提醒動畫開始前:

$(document).ready(function(){ 
    $('#div3').fadeIn(1000, test()); 

    function test(){ 
     alert("Done"); 
    }; 
}); 

我試過把test()函數進出((document).ready()),結果相同。我不知道是什麼造成了這種情況,這可能是我錯過的一些小事,但對於我來說,我看不到它。請指教。

謝謝

回答

1

您正在調用該函數,而不是引用它。刪除括號

$('#div3').fadeIn(1000, test); 
+0

這工作,但我認爲你總是不得不把()在結束時調用一個函數,這很奇怪。 – Mankind1023

+0

您總是將括號添加到**調用**函數中,但在這種情況下,您不想調用該函數,您想引用它以便稍後調用它,然後將圓括號取出,否則將調用它立即。 – adeneo

1

要調用一個函數測試在那裏,通過函數引用,而不是它應該工作

$(document).ready(function(){ 
    $('#div3').fadeIn(1000, test); 
        //--------^--here remove the parenthesis 
    function test(){ 
    alert("Done"); 
    }; 
}); 
相關問題