我制作了一个简单的代码来创建一个"启动画面"。
我使用localstorage
作为我的数据。如果我是第一次加载它,我会从URL获取数据,然后我可以使用$.mobile.changePage()
更改页面。但是,如果已存储localstorage
数据,则更改网页代码无效。
function HOME() {
if (window.localStorage.getItem('newhome')) {
$.mobile.changePage("#pageone", {
transition: "none",
changeHash: false
});
} else {
$.get('http:/someurl', function (data) { //comment this line if we make apk
window.localStorage.setItem('newhome', JSON.stringify(data));
}).done(function (data) {
$.mobile.changePage("#pageone", {
transition: "none",
changeHash: false
});
});
}
}
<body>
<div id="splash" data-role="page"><h1>splash here</h1></div>
<div id="pageone" data-role="page"><p>my content here</p></div>
</body>
如果我运行不同的功能,例如console.log
,他们有效,但不是$.mobile.changePage
。
答案 0 :(得分:0)
您的网页未更改的原因是因为它永远不会进入if循环。 else执行yes,但方法.getItem()
不返回 Boolean 类型。要检查您的密钥是否实际设置,您应该检查null。所以你的代码看起来会更像这样:
if (localStorage.getItem("username") === null) {
$.get('http://www.thejewishinsights.com/wp/wp-json/posts', function (data) { //comment this line if we make apk
window.localStorage.setItem('newhome', JSON.stringify(data));
}).done(function (data) {
$.mobile.changePage("#pageone", {
transition: "none",
changeHash: false
});
});
}
else{
$.mobile.changePage("#pageone", {
transition: "none",
changeHash: false
});
}
我没有检查代码,但你应该明白这个想法。另外我会反对.changePage
,因为它将从jQuery mobile 1.5中删除,如文档中所述http://api.jquerymobile.com/jQuery.mobile.changePage/
我希望这会有所帮助。 干杯和新年快乐!
答案 1 :(得分:0)
您是否尝试过使用此功能:?
$(":mobile-pagecontainer").pagecontainer("change","#newpage");
我认为JQMobile官方网站建议使用此而不是您使用的那个。