Javascript mobile.changePage()在函数中不工作

Javascript mobile.changePage()在函数中不工作,javascript,jquery,html,cordova,jquery-mobile,Javascript,Jquery,Html,Cordova,Jquery Mobile,我编写了一个简单的代码来创建“启动屏幕” 我正在使用localstorage来存储数据。如果我第一次加载它,我会从URL获取数据,我可以使用$.mobile.changePage()更改页面。但是如果localstorage数据已经存储,更改页面代码就不起作用 function HOME() { if (window.localStorage.getItem('newhome')) { $.mobile.changePage("#pageone", {

我编写了一个简单的代码来创建“启动屏幕”

我正在使用
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
            });
        });
    }
}

溅到这里
我的内容在这里


如果我运行不同的功能,例如
console.log
,它们可以工作,但不能运行
$.mobile.changePage

您的页面之所以没有更改,是因为它从未进入If循环。else执行为yes,但方法
.getItem()
不返回布尔类型。要检查您的密钥是否已实际设置,您应该检查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
,因为它将从jquerymobile1.5中删除,正如他们在文档中所述

我希望这有帮助。
干杯,新年快乐

您是否尝试过使用此:

$(":mobile-pagecontainer").pagecontainer("change","#newpage");

我认为JQMobile官方网站建议使用此函数而不是您使用的函数。

通过添加setTimeOut 1秒来解决此问题。是否在事件处理程序中调用此函数?这取决于您何时调用
HOME()
函数。一旦jQM被初始化,它将直接带您到DOM中的第一页div。@Omar,为了正确的方式需要做什么?告诉我please@Omar目前,有些时候(但并不总是返回到第一个div。同时我设置了3秒的时间。你没有阅读吗?代码工作正常。我一直在这个功能中。我不知道你们其他人的代码是什么样子的,所以我唯一能得出的结论是,你应该使用另一种方法在页面之间进行更改。我比弄清楚你去了哪里更容易错了。我觉得你有点粗鲁……我想他是想帮你,所以说“你不读书?”让其他人再三考虑是否要帮助你…我不知道为什么我被否决了。你的问题不清楚?我猜不出你的代码的其余部分。是的,仍然有效,但我以前在changePage和这种新方法方面有很多问题,没有…所以我想也许它解决了他的问题。
$(":mobile-pagecontainer").pagecontainer("change","#newpage");