JQM页面标识和数据网址

时间:2013-06-21 12:34:15

标签: jquery-mobile

页面标识和data-url属性之间的关系是什么。有没有关系。是否可以更改data-url属性。

我的问题是有一个页面,我使用changePage传递参数。我还在changePage中指定了data-url。转到该页面后,如果我手动刷新页面,则会添加新页面,因为该页面的data-url不同。也就是说,data-url与页面id相同。希望对此有所了解。我应该怎么做才能在手动刷新页面时更换页面。

并且,有人可以解释JQM如何使用页面ID和data-url。提前谢谢。

1 个答案:

答案 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();
}