2013-03-22 106 views
4

此代码用于在JQM中将以前的页面从DOM中删除,因此当您单击“后退”时,它将刷新上一页的内容。Jquery Mobile刷新上一页后退按钮

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

然而,这打破了最新的JQuery更新,因为“$()。活”已被弃用,我一直无法与更新的参数“上”或“绑定”得到它的工作使用。

有没有人找到一个适用于此的工作解决方案?

UPDATE:

,因为我不能让某些页面出现在“后退”导航堆栈我不能使用“document.location”。例如,如果我去“提交页面”,并提交它,我只需发出History.Back();呼叫,它会将您带回更新的“详细信息页面”。我不希望他们点击导航栏上的“返回”,并再次返回“提交页面”,因为该项目不能提交两次。有理由我不使用对话框或弹出窗口,但这太冗长了,无法解释。

我想:

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

而且它不完全工作,当我发出History.Back(它改变了URL路径);命令,但页面停留在“提交页面”上。当我使用“$()。live”代码时,它运行得非常好。也许“上”不是一个好的替代品?

+0

我建议'document.location = previous_page',但它是不是很优雅 – 2013-03-22 18:03:04

+0

'.on'是建议的替代品,你可以上张贴关于您的问题的代码应该工作? – 2013-03-22 18:03:42

回答

3

威廉,你忘了事件参数。

如果您想全局使用它来刷新之前所有的“返回”页面,您可以使用“div”而不是“#PageId”。只需将它放在您的母版页的JavaScript中即可。

$(document).on("pagehide", "div[data-role=page]", function(event){ 
    $(event.target).remove(); 
}); 
3

这应该工作:

$(document).on("pagehide", "#[pageID]", function() { 
    // your code here 
}); 
+0

感谢您的反馈,我更新了主线程和我看到的结果。 – 2013-03-22 19:54:42