2012-07-12 45 views
2

我的目標是顯示一個加載彈出框(其中包含一個GIF),同時我做一個AJAX調用。 我正在使用jQuery UI Modal dialog,其中我使用CSS插入GIF動畫。之前,AJAX呼叫開始,我打開對話框並在呼叫結束後立即關閉。問題在於,當AJAX調用正在運行時,GIF停止工作,並在所有瀏覽器中發生。我正在使用以下代碼:爲什麼在進行AJAX調用時GIF動畫停止工作?

<div id="loadingScreen" title="Loading">Please wait...</div> 

#loadingScreen { 
    background: url(http://regretless.com/stuff/jQuery/images/loading.gif) no-repeat 5px 8px; 
    padding-left: 25px; 
} 

$("#loadingScreen").dialog('open'); 
setTimeout(function() { 
    $.ajax({ 
    type: "GET", 
    url: "testing.txt", 
    async: true, 
    dataType: "text", 
    success: function (returnText) { 
     $("#viewDescription").text(returnText); 
     $("#viewGroupID").text(" " + t.id); 
     $("#loadingScreen").dialog('close'); 
     $('#View').dialog('open'); 
    }, 
    error: function (xhr, status, error) { 
     $("#loadingScreen").dialog('close'); 
     alert("An error has occured"); 
    } 
    }); 
}, 10); 

任何人都可以告訴我該問什麼問題?

+0

你可以在多個瀏覽器上重現這個嗎?你是否認爲將代碼重寫爲非動畫代碼? – 2012-07-12 14:12:32

+0

不,確實不是這樣,因爲GIF在AJAX調用之前和之後工作 – user1135357 2012-07-12 14:26:23

回答

0

因爲這是一個背景,所以您需要將焦點設置爲#loadingScreen以保持動畫繼續。

+1

它沒有任何區別。我嘗試過:'$(「#loadingScreen」)。focus();'我也嘗試通過向'div'添加一個圖像標籤來從背景中移除圖像:'';但沒有運氣 – user1135357 2012-07-12 14:05:54

+0

唯一的其他猜測是請求實際上並未以異步模式運行。 – 2012-07-12 15:39:14

+0

'async:true'。別擔心。我實際上創建了一個JSP,並且從JSP我正在對一個servlet進行AJAX調用,該servlet讀取文本文件,然後將文本返回。它現在正在工作。謝謝你的時間 – user1135357 2012-07-13 05:25:46