爲了在做Ajax請求時有一個指示器,我得到了一些信息,說我應該在page元素中放置帶有動畫gif的指示器,然後在ajax函數成功替換數據。添加HTML到帶有Ajax的頁面元素onclick
如果我添加指標源與src =「ajax-loader.html」,ajax調用將它留在原地並不會將其替換爲數據。如果我在.load(「ajax-loader.html」)中添加指示符源,則在ajax調用之前根本不顯示它。如果我將它添加到beforesend事件中的ajax調用中,它也不會顯示。如果我做兩個Ajax調用,一個調用指示器,一個調用這個調用的數據。在這個簡單的代碼中必須有一種方法來顯示指標。
這是頁面元素的HTML。
<iframe id="lcupco" style="position: relative; top: 5px; width: 100%; height: 200px; border: 2px solid grey; margin-bottom: 15px;"></iframe>
這是此指示器的HTML。
<html>
<head></head>
<body>
<img src='images/ajax-loader.gif'/>
</body>
</html>
這是代碼
調用.load
$(document).ready(function(){ $('#lcupco').load("ajax-loader.html");}); $.ajax({ url: 'luxcal/index.php?cP=40', cache: false, async: true, success: function(data) { $('#lcupco').html(data); }, });
使用beforesend
`
$.ajax({
url: 'luxcal/index.php?cP=40',
cache: false,
async: true,
beforeSend: function() {
$('#lcupco').load('ajax-loader.html');
// $('#lcupco').html('<html>Initializing calendar...</html>'); //simple text didn't load either.
},
success: function(data) {
$('#lcupco').html(data);
},
});
- 使用兩個Ajax調用:一個指示器和一個用於數據
`
$.ajax({
url: 'ajax-loader.html',
cache: false,
async: true,
success: function(data) {
$('#lcupco').html(data);
},
});
$.ajax({
url: 'luxcal/index.php?cP=40',
cache: false,
async: true,
beforeSend: function() {
$('#lcupco').html('<html>Initializing calendar...</html>');
},
success: function(data) {
$('#lcupco').html(data);
},
});
`
嗯,這是各種奇怪的。你爲什麼要更新一個iframe的內容(這似乎沒有一個src的,另外,如果你想要去iframe的路線,你能不能更新iframe的src來獲取內容(不需要ajax)。另外,你可以在沒有調用單獨頁面的情況下覆蓋載入器img嗎? – JoeyP 2011-12-27 17:07:24