页面标识和data-url属性之间的关系是什么。有没有关系。是否可以更改data-url属性。
我的问题是有一个页面,我使用changePage传递参数。我还在changePage中指定了data-url。转到该页面后,如果我手动刷新页面,则会添加新页面,因为该页面的data-url不同。也就是说,data-url与页面id相同。希望对此有所了解。我应该怎么做才能在手动刷新页面时更换页面。
并且,有人可以解释JQM如何使用页面ID和data-url。提前谢谢。
答案 0 :(得分:3)
data-url
属性用于跟踪页面元素的来源。如果未明确设置,则主应用程序文档中嵌入的页面的data-url
属性均等于页面id
。唯一的例外是文档中的第一页。当您请求页面时,jQuery Mobile首先尝试在DOM中找到匹配data-url
的页面。如果找不到这样的页面,那么它会执行Ajax请求并在DOM中加载新页面。
您可以使用以下3种方法之一解决问题:
当您移动到另一个页面时,使用以下代码从DOM中删除第二页。
$(document).on('pagehide', '#second-page', function(event, ui){
$(event.target).remove();
});
这样,当您转到第一页时,第二页将从DOM中删除,您的问题将得到解决。
或强>:
使用:
$.mobile.changePage('car-details.html', {
data: {
id: this.id
}
});
不使用dataUrl
设置。
这会创建一个网址:../ car-details.html?id = my_val
在刷新时,网址保持不变,因此您仍然可以获取参数,data-url
与网页ID相同。
或强>
在changePage()
之前检查DOM中是否存在data-url
等于第二页ID的页面并手动将其删除。
if ($("#second-page-id").length > 0 && $("#second-page-id").attr("data-url") === 'second-page-id' ) {
console.log('remove from DOM');
$("#second-page-id").remove();
}