尼克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