4

这段代码在 JQM 中用于从 DOM 中删除以前的页面非常有效,因此当您单击“返回”时,它会刷新前一页的内容。

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

但是,这在最新的 JQuery 更新中出现了问题,因为“$().live”已被弃用,并且我无法使用“on”或“bind”和更新的参数使其工作。

有没有人找到一个可行的解决方案?

更新:

我不能使用“document.location”,因为我不能让某些页面出现在“返回”导航堆栈中。

例如,如果我转到“提交页面”并且提交时我只需发出 History.Back(); 打电话,它会带你回到更新的“详细信息页面”。我不希望他们单击​​导航栏上的“返回”并再次返回“提交页面”,因为该项目无法提交两次。我不为此使用对话框或弹出窗口是有原因的,但这太长了无法解释。

我试过:

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

而且它不能完全工作,当我发出 History.Back(); 时它会更改 URL 路径;命令,但页面停留在“提交页面”上。当我使用“$().live”代码时,效果很好。也许“开”不是一个好的替代品?

4

2 回答 2

4

威廉,你忘记了事件参数。

如果您想全局使用它来刷新“返回”上的所有先前页面,您可以使用“div”而不是“#PageId”。只需将其放入您的母版页的 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 回答