jquery延迟问题

时间:2011-09-15 23:54:23

标签: jquery

当用户在标签之间切换时,我希望它能立即加载基于标签的内容...当你单击一个标签时,新的页面会加载,但是你可以看到旧页面的大约一半第二,在新的加载之前,它看起来很奇怪。知道我做错了什么吗?谢谢:))

我认为这个问题在某种程度上是在load()。hide()。fadeIn()但是从我读到的它应该立即没有任何延迟......这很奇怪,因为它在我的localhost上无缝工作,但在hostgator上单击不同标签时会有延迟吗?

if ($('li:first').hasClass('active')) {
$('#populate').load('basic.php').hide().fadeIn('slow');
}

$('li:first').click(function() {
if ($(this).hasClass('active')) {
return;
}
$('li.advanced').removeClass('active');
$(this).toggleClass('active');
$('#populate').load('basic.php').hide().fadeIn();
}); 

$('li.advanced').click(function() {
if ($(this).hasClass('active')) {
return;
}
$('li:first').removeClass('active');
$(this).toggleClass('active');
$('#populate').load('advanced.php').hide().fadeIn();
});

1 个答案:

答案 0 :(得分:1)

由于load()是异步的,因此在您调用它时会立即返回。这可能是导致旧内容显示问题的原因 - 您在加载完成之前隐藏和淡化旧版本的内容。您可以传递load()一个回调,以便在加载完成之后隐藏/淡出运行,如下所示:

$('#populate').load('advanced.php', function() {
    $('#populate').hide().fadeIn();
});