2012-05-03 113 views
1

我在我的頁面上使用了fullscreenr jQuery插件。首先,我隱藏圖像,然後我就可以運行fullscreenr使用waitforimage插件,然後最後我用淡入來顯示它:使用jQuery按順序執行操作

<img id="bgimg" style="display: none;" src="<?php bloginfo('template_url')?>/images/backgrounds/<?php echo $imageData['location']; ?>" /> 

<script type="text/javascript"> 
    $bg = $('#bgimg'); 
    $bg.hide(); 
    var FullscreenrOptions = { width: <?php echo $imageData['width']; ?>, height: <?php echo $imageData['height']; ?>, bgID: '#bgimg' }; 
    $bg.waitForImages(jQuery.fn.fullscreenr(FullscreenrOptions)); 
    $bg.fadeIn(2500); 
</script> 

我的問題是,不知何故,有什麼不工作很正確。這可以在我的開發框中正常工作,但是當我嘗試在網頁上加載頁面時,fadeIn會在圖像完全加載之前啓動。

我試着給fullscreenr函數添加一個回調函數,但它有相同的結果。我能做些什麼來確保它正常工作?我也嘗試使用$ bg.load()來加載fullscreenr,再次,沒有運氣。

謝謝!

+1

你能張貼'負荷什麼()'你使用的代碼。這似乎是最好的解決方案,所以我不確定它爲什麼不適合你。 –

回答

2

當你有像function2(function1(whatever))這樣的嵌套函數調用時,首先執行內部函數,然後執行外部函數。所以在你的情況下,fullscreenr()調用將應用在waitForImages之前......並且這將解釋行爲。

在第二一瞥我想,這是你想要做

$bg.waitForImages(function() {jQuery.fn.fullscreenr(FullscreenrOptions)}); 
+0

所以我是waitForImage fullscreenr函數的返回值,而不是傳遞函數來加載圖像後調用?如果我使用load()函數,它會是一樣的嗎? – dougalg

+0

*「我正在通過」...我會試試這個,當我得到hom – dougalg

+0

你嘗試我建議的代碼?它應該將匿名函數作爲回調函數返回給waitForImages,而不是立即調用fullscreenr – devnull69