2012-07-20 101 views
1

我有一个关于jquery fadein的问题。我试图在div上使用它,但它不起作用,甚至在第一次隐藏时也不行。FadeIn无法在加载函数

我使用这个代码填充加载页面时,DIV:

$('#pagebody').html('<p><img src="/common/images/loader.gif" width="24" height="24" /></p>'); 
$('#pagebody').load("useradmin.php").hide().fadeIn('slow'); 

首先,它加载一个小预加载图像,然后将其加载div的内容,我想淡入为什么。这不工作吗?

+0

该代码将淡入#pagebody。是#pagebody一个DIV? hide()的目的是什么?你想加载useradmin.php的内容,然后隐藏它 - 然后淡入? – 2012-07-20 11:02:12

回答

1

$.load()是异步的 - 在这种情况下,这意味着.hide().fadeIn()将在加载完成之前执行。把淡入到后的内容加载的回调函数将执行:

$('#pagebody').load("useradmin.php", function() { 
    $(this).hide().fadeIn('slow'); 
}); 

+0

谢谢,这个伎俩 – Mbrouwer88 2012-07-20 11:37:45

0

你应该写这样的事情。

$('#pagebody').html('<p><img src="/common/images/loader.gif" width="24" height="24" /></p>').load("useradmin.php", function(){ 
     $('#pagebody').hide().fadeIn('slow'); 

    }); 
0
$('#pagebody').load('useradmin.php', function() { 
    $(this).fadeIn('slow'); 
}); 

这应该工作...

0

不知道我得到的问题,但我猜这将是一个好主意,等到内容做任何褪色之前加载?

$('#pagebody').hide() 
    .html('<p><img src="/common/images/loader.gif" width="24" height="24" /></p>') 
    .load("useradmin.php", function() { 
     $(this).fadeIn('slow'); 
    }); 

在另一方面,load()将取代与html()添加的内容,所以<p><img>元素你的HTML添加()由useradmin.php内容覆盖,但因为它是一个预加载,我猜这是预期的效果?