Jquery 动态创建的内容在用户单击BackRails时不显示
我有一个带有层叠下拉列表的页面(一个下拉列表的可用选项由另一个下拉列表的选择决定)。我是一个ajax调用来填充第二个选择:Jquery 动态创建的内容在用户单击BackRails时不显示,jquery,html,ruby-on-rails,ajax,Jquery,Html,Ruby On Rails,Ajax,我有一个带有层叠下拉列表的页面(一个下拉列表的可用选项由另一个下拉列表的选择决定)。我是一个ajax调用来填充第二个选择: $.ajax({ url: "/sport_types/"+$(this).val()+"/leagues" dataType: "json" success: (data) -> $(".league_selector option").remove() row = "<option value=\"\">
$.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)
})
$.ajax({
url:“/sport_types/”+$(this.val()+“/leagues”
数据类型:“json”
成功:(数据)->
$(“.league\u选择器选项”).remove()
row=“选择一个联盟…”
$(“.league_selector”).append(行)
$。每个数据(i,j)->
行=“”+j.league_name+“”
$(“.league_selector”).append(行)
})
这很好,但如果用户单击浏览器上的“后退”按钮,则不会加载动态生成的内容
我正在运行一个rails应用程序,以防在rails中有一个简单的方法来处理这个问题,太棒了。如果没有,任何好的ol'HTML/jQuery技巧都将受到极大的赞赏。点击浏览器中的后退按钮相当于页面刷新,因此显然HTML将默认为正常状态
如果希望此方法起作用,则必须将数据存储在cookie或会话中,并在刷新时填充。如果单击“上一步”按钮,则并非所有浏览器都刷新一次。其中一些代码是从现金中提取的,因此如果您添加此代码,它将是有用的。如果你的散列被更改,你需要下载你的“源”
var hash = location.hash;
setInterval(function()
{
if (location.hash != hash)
{
alert("Changed from " + hash + " to " + location.hash);
hash = location.hash;
}
}, 100);
或
你可以使用历史插件
注意
jQuery.fn.hashchange
event尝试将您的解决方案建立在哈希的基础上