2012-09-27 16 views
0

我有一個頁面級聯下拉列表(一個下拉列表中的可用選項是由另一個選擇決定的)。我是一個Ajax調用來填補這一第二選擇:動態創建的內容不會出現當用戶點擊返回軌道

$.ajax({ 
    url: "/sport_types/"+$(this).val()+"/leagues" 
    dataType: "json" 
    success: (data) -> 
     $(".league_selector option").remove() 
     row = "<option value=\"\">Choose a League...</option>" 
     $(".league_selector").append(row) 
     $.each data, (i, j) -> 
     row = "<option value=\"" + j.id + "\">" + j.league_name + "</option>" 
     $(".league_selector").append(row) 
    }) 

這工作得很好,但如果用戶點擊瀏覽器的後退按鈕時,未加載此動態生成的內容。

我正在運行一個rails應用程序,以防萬一有一個簡單的方法來處理這個在rails中,真棒。如果沒有,任何好的HTML'/ jQuery技巧將不勝感激。

+0

嘗試基地你解決方案哦哈希http://stackoverflow.com/questions/136937/is-there-a-way-to-catch-the-back-button-event-in-javascript –

回答

0

在瀏覽器中點擊後退按鈕相當於頁面刷新,所以顯然你的HTML將被默認爲正常狀態。

如果您希望這種方法來工作,你必須將數據存儲在任何一個cookie或會話並填充在刷新..

0

如果您單擊後退按鈕,並不是所有的瀏覽器刷新之一。其中一些從現金中獲得一個,所以如果你添加了這個代碼,這將是有用的。如果你的散列改變,你需要下載你的 '源'

var hash = location.hash; 

setInterval(function() 
{ 
    if (location.hash != hash) 
    { 
     alert("Changed from " + hash + " to " + location.hash); 
     hash = location.hash; 
    } 
}, 100); 

OR

您可以使用歷史插件jquery-history

多多關注jQuery.fn.hashchange事件