我正在使用带有phonegap的iOS应用程序。我遇到了一个问题。在页面(以及其他AJAX函数)被触发后,似乎事件设备就绪了。
示例代码:
Global.init = function() {alert("ready");}
$(function(){
document.addEventListener("deviceready", Global.init, false);
});
$('#landing').live('pageshow', function(){alert('pageshow')});
我会在警报“准备好”之前看到警报'pageshow'(几秒钟)。无论如何确保在设备准备好之后执行所有JQuery移动代码?
答案 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()函数中,并为每个页面显示重复的代码进入委托功能。