4

このコードは、以前のページを DOM から削除するために JQM で驚くほど機能していたため、「戻る」をクリックすると前のページのコンテンツが更新されました。

$('div').live('pagehide', function(event, ui) {
    $(event.target).remove();
});

ただし、これは最新の JQuery 更新で壊れました。これは、「$().live」が廃止されたため、更新されたパラメーターで「on」または「bind」を使用して動作させることができませんでした。

誰かがこれに対する実用的な解決策を見つけましたか?

アップデート:

特定のページを「戻る」ナビゲーション スタックに表示できないため、「document.location」を使用できません。

たとえば、「送信ページ」に移動し、送信されたときに History.Back(); を発行するだけです。呼び出すと、更新された「詳細ページ」に戻ります。アイテムを 2 回送信することはできないため、ナビゲーション バーの [戻る] をクリックしてもう一度 [送信ページ] に戻ってほしくありません。これにはダイアログやポップアップを使用しない理由がありますが、説明するには長すぎます。

私は試した:

$(document).on("pagehide", "#PageId", function () {
      $(event.target).remove();
  });

History.Back(); を発行すると、URL パスが変更されます。コマンドですが、ページは「送信ページ」にとどまります。「$().live」コードを使用していたときは、うまく機能しました。多分「オン」は良い代用ではないでしょうか?

4

2 に答える 2

4

ウィリアム、あなたはイベントパラメータを忘れています。

グローバルに使用して「戻る」の前のページをすべて更新する場合は、「#PageId」の代わりに「div」を使用できます。これをマスターページの JavaScript に入れるだけです。

$(document).on("pagehide", "div[data-role=page]", function(event){
  $(event.target).remove();
});
于 2013-03-22T20:30:17.300 に答える
3

これはうまくいくはずです:

$(document).on("pagehide", "#[pageID]", function() {
    // your code here
});
于 2013-03-22T18:04:16.147 に答える