JQuery Mobile + Phonegap:页面在设备准备好之前显示

时间:2012-04-19 09:10:54

标签: jquery mobile cordova

我正在使用带有phonegap的iOS应用程序。我遇到了一个问题。在页面(以及其他AJAX函数)被触发后,似乎事件设备就绪了。

示例代码:

Global.init = function() {alert("ready");}
$(function(){
    document.addEventListener("deviceready", Global.init, false);
});
$('#landing').live('pageshow', function(){alert('pageshow')});

我会在警报“准备好”之前看到警报'pageshow'(几秒钟)。无论如何确保在设备准备好之后执行所有JQuery移动代码?

2 个答案:

答案 0 :(得分:1)

在deviceready事件处理程序中委派“pageshow”功能后,您必须触发'pageshow'事件:

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
    $("#details_page").on("pageshow", function() {
        console.log("Hello world!");
    });
    $("#details_page").trigger("pageshow");
}

答案 1 :(得分:0)

来自here

的回答

请注意,您只能在触发deviceready事件后运行代码。

因此,设备就绪事件就是这样:

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
    $(document).delegate("#details_page", "pageshow", function() {
        console.log("Hello world!");
    });
}

请注意,如果#detalis_page是要加载的第一个页面,则第一个“pageshow”将不会被调用,因为它在设备就绪之前到来,将初始代码放在onDeviceReady()函数中,并为每个页面显示重复的代码进入委托功能。