我有一個窗體,通過ajax調用來存儲用戶數據。jQuery fadeIn div page afterreload
成功後,我通常會有一個div淡入成功消息。但是,我想重新加載頁面,以便更新頁面,然後淡入成功消息。
我正在使用.load()更新div,然後切換窗體以隱藏自身等。但.load導致一些其他js腳本在它被調用後無法工作等,所以現在即時通訊重新加載頁面。
但是,我想顯示頁面重新加載後的成功消息div。
這是一個例子:
if (check) {
$.ajax({
type: "POST",
url: "process/updateuserpref.php",
data: $('.updatepref').serialize(),
dataType: "json",
success: function(response){
if (response.updatePrefSuccess) {
location.reload();
$('#successdisplay').fadeIn(1000);
$('#successdisplay').delay(2500).fadeOut(400);
}
}
});
}
我明明知道
$('#successdisplay').fadeIn(1000);
$('#successdisplay').delay(2500).fadeOut(400);
犯規目前的工作,但我如何能做到我想要的任何幫助嗎?
謝謝,克雷格。
一旦你做'location.reload();'你就完蛋了。你要麼處於無限循環的重新加載中,要麼是上面的代碼是由事件觸發的,所有代碼都會丟失,並且今天不會出現任何褪色。 – adeneo
使用事件委託您的'其他js腳本'或在加載AJAX內容後重新初始化它們。這將是學習異步代碼的有用練習。問題很可能是這些腳本綁定到更新HTML時不再存在的元素。 – Jasper
@adeneo是的,我建議不要使用'window.location.reload()',而是改變位置類似於查詢字符串參數來指定需要發生的事情(如淡入元素)。 – Jasper