这个特性还是有点问题,至少data-cache="false"。
解决方案 1
要在应用级别禁用兑现,您需要在 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>
解决方案 2
有时您不想在应用程序级别禁用页面兑现,在这种情况下 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/