我正在尝试定义在Android应用程序中注册PhoneGap和jQuery Mobile的初始化事件(jQuery样式)的正确方法.
研究文件后,我想出了以下几点:
$('#index-page').live('pageinit',function () { // <-- fires $(document).bind('deviceready',function () { // <-- !fires // ... }); });
“外部”事件(pageinit)触发,而“内部”(deviceready)没有…
虽然,这种类型的事件注册工作完美:
window.addEventListener('load',function () { document.addEventListener('deviceready',function () { // ... },false); },false);
任何人可以解释第一种类型的事件注册有什么问题?什么类型更好?
先决条件:
> PhoneGap v1.2
> jQuery Mobile v1.0rc2
> Eclipse v3.7.1
解决方法
请坚持最后一个,因为这是PhoneGap推荐的,您的第一个方法可能不工作,因为你是绑定的设备太晚(即:它已经在绑定之前被解雇).这是因为pageinit被触发相对较晚.
你可以做的是jQuery的方式:
$(window).load(function() { $(document).bind('deviceready',function () { // ... }); });