Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 动态创建的内容在用户单击BackRails时不显示_Jquery_Html_Ruby On Rails_Ajax - Fatal编程技术网

Jquery 动态创建的内容在用户单击BackRails时不显示

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调用来填充第二个选择:

$.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

尝试将您的解决方案建立在哈希的基础上