2012-02-24 143 views
0

我有這樣的腳本:阿賈克斯預加載工作只有一次

$(function() { 
$(this).ajaxStart(function() { 
$("#loading").show(); }); 
$(this).ajaxStop(function() { 
$("#loading").hide(); }); 
}); 

$(document).ready(function() { 
$('.button').click(function() { 
$("#contentDiv").load("content.php"); 
}); 

$('.button2').click(function() { 
$("#contentDiv").load("content2.php"); 
}); 
}); 

而且這個網站:

<div id="contentDiv"> 
<div id="loading"></div> 

</div> 

我想顯示加載.gif注意每一個新的負載,但是現在它只能一次整個頁面被加載。所以當我第一次點擊「按鈕」,「加載」顯示,「內容」被加載並且「加載」被隱藏。當我點擊「button2」時,「content2」被加載,但「加載」沒有顯示。我嘗試從「contentDiv」中刪除「加載」div,但「加載」從未隱藏。

回答

0

我做了它的工作是這樣的:

$(document).ajaxStart(function() { 
$('.loading').show(); 
$('#contentDiv').hide(); 
}).ajaxStop(function() { 
$('.loading').hide(); 
$('#contentDiv').show(); 
}); 

HTML:

<div id="contentDiv"></div> 
<div class="loading"></div> 

我必須做負載的div類,因爲ID是行不通的。

1

<div id="loading" style="display:none"></div> 

<div id="contentDiv"> 
+0

我之前tryed它...結果是,裝載從不顯露。 – user1182960 2012-02-24 11:32:59

1

您要更換的#contentDiv的內容,其中包含了#loading DIV,因此它可能不再存在以上,如果在div ISN」呼籲​​後t也存在於content.phpcontent2.php中。它可能看起來好像您的代碼第一次完全運行,但不是簡單地隱藏#loading,而是實際上完全刪除它。

如果這不是問題,那麼它可能是AJAX調用快速完成足夠的元件示,然後再次隱藏起來,速度不夠快,你不能看到它發生。

+0

我想這樣的說法,因爲我改變使用淡入功能3周的div並顯示打開的前格時,對於第二是顯示舊的內容,然後新的內容是真實的,所以裝載已經不在那裏。但是,當我將它實現到content.php時,它不起作用,當我把外部加載到一個div ....所以也許有一個不同的代碼,將爲我工作.... – user1182960 2012-02-24 12:20:59

0

ID,就是要你的網頁上的單個唯一實例。在另一方面一個類可以重複使用多次。所以,真正獨自以下變化應該工作:

<div class="loading"></div>