2012-04-19 85 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"); 
}