加载页面后,我按下链接并加载特定页面。当我想回到索引页面时,问题就开始了 - 页面是"缓存"。它使用display:none
或其他东西保留在DOM中,但我需要它每次都会加载为新的,如何做到这一点?我已经尝试过了:
jQuery.ajaxSetup({cache: false});
jQuery.mobile.ajaxLinksEnabled = false;
data-cache="false"
jQuery.mobile.page.prototype.options.domCache = false;
答案 0 :(得分:2)
此功能仍然有点儿,至少 data-cache =“false”。
要在应用级别禁用兑现,您需要在mobileinit事件中执行此操作,如下所示:
$(document).bind("mobileinit", function() {
$.mobile.page.prototype.options.domCache = false;
});
还有一件事,很多人都不理解这一部分。必须在jQuery Mobile初始化之前初始化 Mobileinit 事件,如下所示:
<script src="jquery.js"></script>
<script>
$(document).bind("mobileinit", function() {
$.mobile.page.prototype.options.domCache = false;
});
</script> <!-- Note your script before jqm -->
<script src="jquery-mobile.js"></script>
有时您不希望在应用级别禁用页面兑现,在这种情况下,data-cache =“false”应该有效,遗憾的是它无法按预期工作。但它可以这样强迫:
$('div').on('pagehide', function(event, ui){
var page = $(event.target);
if(page.attr('data-cache') == 'false'){
page.remove();
};
});
此部分代码会在隐藏后删除页面。
这是一个实时的jsFiddle示例:http://jsfiddle.net/Gajotres/wgLzu/