2013-06-04 51 views
0

我試圖觸發$(位置).attr()完成時的事件。當attr()被用來改變一個img src時,我發現了很多解決方案,但是沒有使用$(location).attr()。

你可能會問爲什麼我想這樣做? 在我的應用程序中,我有一個按鈕將數據導出到xml(在後臺使用php代碼)。但是,這可能需要一些時間(幾秒鐘!)。所以,我想顯示一個小小的「在請輸出時請等待」,然後在生成xlsx並開始下載後將其刪除。

這可能嗎?

+0

我想你正在使用ajax。那麼爲什麼不在請求之前設置加載消息,並在成功/完成回調中刪除此消息呢? –

+0

如果您正在更改實際的'window.location',那麼將重新加載頁面或在設置內容處置後開始下載,如果這是您要做的事情,請更好地解釋它。另外,在jQuery中封裝位置對象通常不是很好的形式? – adeneo

+0

$(location).attr('href',「/」+ module +「s/export/index?type =」+ params.type +「...其他參數...」);然後在我的PHP中,我用$ objWriter-> save('php:// output')完成我的控制器; (objWriter是一個PHPExcel對象),使我下載文件。該位置不會重新加載頁面 – Olivier

回答

0
$("#waitMessage").show(); 

$.post("processing.php", yourParameters) 
    .then(function (data) { 
     // handle success 
    }) 
    .fail(function() { 
     // handle server error 
    }) 
    .always(function() { 
     $("#waitMessage").hide(); 
    })