2013-11-26 73 views
0

我有一個窗體,通過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); 

犯規目前的工作,但我如何能做到我想要的任何幫助嗎?

謝謝,克雷格。

+2

一旦你做'location.reload();'你就完蛋了。你要麼處於無限循環的重新加載中,要麼是上面的代碼是由事件觸發的,所有代碼都會丟失,並且今天不會出現任何褪色。 – adeneo

+0

使用事件委託您的'其他js腳本'或在加載AJAX內容後重新初始化它們。這將是學習異步代碼的有用練習。問題很可能是這些腳本綁定到更新HTML時不再存在的元素。 – Jasper

+1

@adeneo是的,我建議不要使用'window.location.reload()',而是改變位置類似於查詢字符串參數來指定需要發生的事情(如淡入元素)。 – Jasper

回答

0

而不是簡單的重裝,你可以發送與裝載的GET變量,然後檢查GET變量存在,顯示成功消息如果沒有,什麼都不做

我做同樣的事情,所以這是我該怎麼辦它:

reload()這一翻譯怎麼辦?

window.location.href = document.location.protocol + 「//」 + document.location.hostname + document.location.pathname +」成功= 1' ;

然後在我的PHP腳本我做了有條件的輸出:

<?php if($isset($_GET['success']) && $_GET[ 'success' ] == 1) { ?> 
    <div id="successdisplay"> 
     Changes performed Successfully 
    </div> 
<?php }?> 
+0

這看起來像是一個有趣的方式。 我明天早上看看,試試看。 – Lovelock