2012-05-03 103 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