1

我有一个关于 Jquery 淡入淡出的问题。我正在尝试在 div 上使用它,但它不起作用,即使在第一次隐藏它时也是如此。

我正在使用此代码在加载页面时填充 DIV:

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

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

4

4 回答 4

1

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

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

​</p>

于 2012-07-20T11:06:10.863 回答
0

你应该写这样的东西。

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

    });
于 2012-07-20T11:06:40.170 回答
0
$('#pagebody').load('useradmin.php', function() {
  $(this).fadeIn('slow');
});

那应该工作...

于 2012-07-20T11:06:52.123 回答
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(),因此您使用 html() 添加的<p>and<img>元素被 useradmin.php 中的内容覆盖,但由于它是预加载器,我猜这是预期的效果?

于 2012-07-20T11:07:09.373 回答