我有一个带有级联下拉列表的页面(一个下拉列表的可用选项由另一个下拉列表的选择决定)。我是一个填充第二个选择的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应用程序,以防万一有一个简单的方法来处理这个轨道,真棒。如果没有,那么任何好的HTML / jQuery技巧都会受到高度赞赏。
答案 0 :(得分:0)
点击浏览器中的后退按钮相当于页面刷新,因此显然HTML将默认为正常状态。
如果您希望这种方法起作用,您必须将数据存储在cookie或会话中,并在刷新时填充..
答案 1 :(得分:0)
如果单击后退按钮,则不是所有浏览器都刷新一个。其中一些从现金中获取一个,所以如果你添加这个代码将是有用的。如果您更改了哈希,则需要下载“源”
var hash = location.hash;
setInterval(function()
{
if (location.hash != hash)
{
alert("Changed from " + hash + " to " + location.hash);
hash = location.hash;
}
}, 100);
或强> 的
您可以使用历史记录插件jquery-history
关注jQuery.fn.hashchange
事件