我创建了一个 multipage(data-role="page") html。在 page1 我最初有用户名字段 填写它存储在 localstorage 中的用户名并重定向到 page2。它工作正常再次打开应用程序检查本地存储是否存在,直到 hide pagebeforeshow 事件中的 page1 所以问题出现在这里 < strong>page2 未创建。这个怎么解决。这是工作 Fiddle
*注意 在 fiddle 中输入文本并提交然后刷新页面。 HTML 是这样的:
<div data-role="page" id="page1">
<div data-role="header">
<h1>page 1 from html</h1>
<a >Go</a>
</div><!-- /header -->
<div data-role="content">
<label>Type text to store in LocalStoreage</label>
<input type="text" id="name" />
<button id="sub">Submit</button>
</div>
</div><!-- /page -->
<div data-role="page" id="page2">
<div data-role="header">
<h1>Page 2</h1>
<a href="#page1">Back</a>
</div><!-- /header -->
<div data-role="content">
<p> Hi i am second page</p>
</div>
</div><!-- /page -->
脚本是:
$(document).on("pagebeforeshow","#page1",function(){
$("#page1").hide();
var locStorage = localStorage.getItem("lastname");
//alert(locStorage);
if(locStorage){
$.mobile.changePage("#page2");
}else{
$("#page1").show();
}
});
$(document).on("click","#sub",function(){
// alert( $("#name").val());
localStorage.setItem("lastname", $("#name").val());
$.mobile.changePage("#page2");
});
当评论$("#page1").hide();
这一行时page1显示之后只导航到page2 i 不想在本地存储可用时显示 page1。
编辑: 在加载 jquery mobile 之前设置 $.mobile.autoInitialize = false;
,即使 page1 加载了几秒钟也是如此。
最佳答案
尝试这样的事情,
windows.location.href="index.html#page2"
OR
windows.location.href="#page2"
代替
$.mobile.changePage("#page2");
所以你可以试试这个代码,
$(document).on("pagebeforeshow","#page1",function(){
var locStorage = localStorage.getItem("lastname");
//alert(locStorage);
if(locStorage!=null){
windows.location.href="#page2";
}
else{
windows.location.href="#page1";
}
});
$(document).on("click","#sub",function(){
// alert( $("#name").val());
localStorage.setItem("lastname", $("#name").val());
windows.location.href="#page2";
});
关于javascript - 页面未显示在多页中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26030520/