0

カスケード ドロップダウン リストを含むページがあります (あるドロップダウン リストで使用可能なオプションは、別のドロップダウン リストの選択によって決まります)。私は、この 2 番目の選択を満たすための 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)
  })

これは正常に機能しますが、ユーザーがブラウザの [戻る] ボタンをクリックすると、この動的に生成されたコンテンツは読み込まれません。

レールでこれを処理する簡単な方法がある場合に備えて、レールアプリを実行しています。そうでない場合は、古き良き HTML/jQuery のトリックがあれば大歓迎です。

4

2 に答える 2

0

戻るボタンをクリックした場合、すべてのブラウザが1つを更新するわけではありません。それらのいくつかは現金から1つを取るので、このコードを追加すると便利です。また、ハッシュが変更された場合は、「ソース」をダウンロードする必要があります

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イベントに注意を払う

于 2012-09-27T22:44:39.807 に答える
0

ブラウザーの戻るボタンを押すことは、ページを更新することと同じであるため、HTML はデフォルトで通常の状態になります。

このアプローチを機能させたい場合は、データを Cookie またはセッションに保存し、更新時にデータを入力する必要があります。

于 2012-09-27T22:40:34.647 に答える