尼克Craver真的帮了我很多与此代码在这个线程 jQuery - Can someone help stitching jQuery code with .ajaxComplete()?jQuery - 确保内容在其淡入之前加载?
而且这是工作。但是我注意到,点击链接之后以及实际加载内容之前有一小段延迟。这并不是非常强烈的内容,因此我认为这与脚本中事件的发生顺序有关。
原来的代码如下所示:
$('.dynload').live('click',
function(){
var toLoad = $(this).attr('href')+' #content';
$('#content').fadeOut('fast',loadContent);
$('#ajaxloader').fadeIn('normal');
function loadContent() {
$('#content').load(toLoad,'',showNewContent())
}
function showNewContent() {
$('#content').fadeIn('fast',hideLoader());
//Cufon.replace('h1, h2, h3, h4, .menuwrapper', { fontFamily:
'advent'});
}
function hideLoader() {
$('#ajaxloader').fadeOut('normal');
}
return false;
});
新的代码如下所示:
$(function() {
$('.dynload').live('click', function(){
$('#ajaxloader').fadeIn('fast');
$('#ajaxloaderfridge').fadeIn('fast');
var href = this.href + ' #content';
$('#content').fadeOut('fast',function() {
$(this).load(href,'', function(data) {
createMenus();
$('#ajaxloader').fadeOut('fast');
$('#ajaxloaderfridge').fadeOut('fast');
$('#content').fadeIn('fast');
Cufon.replace('h1, h2, h3, h4, .menuwrapper', { fontFamily: 'advent'});
});
});
return false;
});
});
$(createMenus);
function createMenus() {
$('#kontrollpanel .slidepanels').kwicks({
min : 42,
spacing : 3,
isVertical : true,
sticky : true,
event : 'click'
});
}
在原代码,#内容淡出,则函数“loadContent”是开始。 这基本上是新脚本中发生的事情,不是吗? 当我使用旧代码时,内容刚刚淡出,并且在内容到达之前非常快速平滑地消失,并且不会有很小的暂停延迟。
我可以给你一个关于它究竟是什么的简明声明你想要发生? – GlenCrawford 2010-05-01 11:23:25
我得到了404 /'img/Footer.png','/ img/sprite_tints1.png'和'/ img/testGB.jpg',这会导致浏览器延迟,你能修复或删除这些图片? – 2010-05-01 13:54:08
我尼克:) 感谢您使我清除这些问题:)我已经解决了他们现在(这是我的傻瓜证明preloader图像:p) 但是,它看起来并不像它有任何事情要做尽管我的问题。然而,我注意到了mattbasta的回复。 编辑:这不是一个真正的大问题,只是有点讨厌:) – 2010-05-01 14:16:38