【发布时间】:2014-12-26 12:35:18
【问题描述】:
我编写了一个简单的代码来创建一个“启动画面”。
我使用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。
【问题讨论】:
-
通过添加 setTimeOut 1 秒来解决此问题。
-
这是在事件处理程序中调用的吗?
-
这取决于你什么时候调用
HOME()函数。初始化 jQM 后,它将直接带您到 DOM 中的第一个 page div。 -
@Omar 以及正确的方法需要做什么?请告诉我
-
@Omar 在当前时间,有时(但并不总是它仍然返回到第一个 div。同时我将时间设置为 3 秒。
标签: javascript jquery html cordova jquery-mobile