2012-04-19 94 views
2

我正在使用手机开发iOS应用程序。我遇到了一个问题。看起来事件设备准备好后被触发页面(和其他AJAX函数)被触发。JQuery Mobile + Phonegap:在设备准备就绪前显示页面

示例代码:

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

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

+0

请参阅本question.Hope这有助于 的http://计算器的.com /问题/ 5036703 /的关系之间-phonegaps-onbodyload-ondeviceready函数和 – saraf 2012-11-27 10:39:16

回答

0

here

注意,deviceready事件已被解雇后,你只能运行代码的答案。

因此,与装置就绪时它会像这样:

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

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

注意,如果#detalis_page是加载第一页,第一个“pageshow”将不会被调用,因为它到来之前准备好设备,将您的初始代码放入onDeviceReady()函数中,并将每个页面的重复代码放入代理函数中。

1

一旦 “pageshow” 功能是在deviceready事件处理中委托必须触发 'pageshow' 事件:

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

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