2016-05-16 69 views
0

當用戶點擊其中一個按鈕時,他們通過ajax更新頁面的內容,然後按鈕被隱藏,一些新的按鈕可供用戶使用。問題是當我點擊後退按鈕時,它不會回到上一個功能。我希望用戶回到前一組按鈕,這裏是我的代碼:如何返回到jQuery的功能

$(".buttonset1").click(function() { 
    $('#div1').css("display","none"); 
    id = $(this).attr("value"); 
    query = 'ajax.php?id='+id; 
    myQuery(query); 
    $('#div2').css("display","block"); 
}); 

$(".buttonset2").click(function() { 
    $('#div2').css("display","none"); 
    value = $(this).attr("value"); 
    query = 'ajax.php?id='+id+'&var1='value; 
    myQuery(query); 
    $('#div3').css("display","block"); 
}); 

現在DIV2顯示給用戶....更改爲MyQuery功能做了ajax查詢

function myQuery(url) { 
    if (window.XMLHttpRequest) { 
     xmlHttp = new XMLHttpRequest(); 
    } else { 
     xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlHttp.onreadystatechange = function() { 
     if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { 
      document.getElementById("sql").innerHTML = xmlHttp.responseText; 
     } 
    } 
    xmlHttp.open('GET', url, true); 
    xmlHttp.send(); 
} 
+0

按下瀏覽器的後退按鈕會去到以前的網址,JavaScript代碼將重新加載(和變量數據丟失),如果你重新加載頁面。對於JavaScript函數沒有「後退」,你必須在更新之前存儲你以前的變量,併爲自己編寫一個函數,讓它恢復(不要點擊後退瀏覽器按鈕思想) –

+0

如何使用history.pushstate ...有沒有其他方法可以做到這一點? –

+0

你在哪裏看到pushState()方法?我在猜測https://developer.mozilla.org/en-US/docs/Web/API/History_API#The_pushState%28%29_method? –

回答

0

解決這是非常簡單的

History.Adapter.bind(window,'statechange',function(){ // Note: We are using statechange instead of popstate 
    var State = History.getState(); // Note: We are using History.getState() instead of event.state 
    var url = State.url;  
    myQuery(url); 
});