2

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

示例代码:

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

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

4

2 回答 2

1

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

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

function onDeviceReady() {
    $("#details_page").on("pageshow", function() {
        console.log("Hello world!");
    });
    $("#details_page").trigger("pageshow");
}
于 2014-03-08T20:17:31.990 回答
0

从这里回答

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

因此,对于设备就绪事件,它会是这样的:

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

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

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

于 2013-08-22T09:11:25.977 回答