2012-05-13 63 views
0

我正在研究一個用於學習目的的應用程序。Phonegap,點擊導航欄按鈕時如何觸發功能

Theres標題,內容和navbar與2個按鈕。

當應用程序啓動時,body =「onLoad()」函數運行得非常好,但是當我點擊導航欄中的另一個按鈕時,我想觸發一個顯示頁面內容的函數。但是當我在索引文件(body =「contentLoader()」)上以完全相同的方式調用新HTML文件中的函數時,它不會觸發!

繼承人在index.html代碼

<html> 
<head> 
<head> 
</head> 


<body onload="onBodyLoad()"> 

現在我想點擊「列表視圖」 - 鍵在導航欄,其中有一個自己的HTML頁面,還與

<body onload="onListLoad()"> 

但我的JavaScript功能function onListLoad() { alert("test"); }不是篝火。

我不明白爲什麼。這不正常嗎?

在此先感謝。問候,約翰。

回答

0

我很確定您的子頁面中的標籤在PhoneGap中被刪除。只有主索引頁面會觸發它的onload方法。

從我收集的內容中可以看出,只要激活其中一個導航標籤,就會嘗試啓動一些代碼。我不知道我可以告訴你「正確」的方式做到這一點,但這裏是我做的:

<div data-role="page" id="reports-browse"> 
    <div data-role="header"></div> 
    <div data-role="navbar"> 
     <ul> 
      <li><a href="#" onclick="$('#tab1').show(); $('#tab2').hide();" class="ui-btn-active">Tab 1</a></li> 
      <li><a href="#" onclick="$('#tab1').hide(); $('#tab2').show();">Tab 2</a></li> 
     </ul> 
    </div> 
    <div data-role="content"> 
     <div id="tab1">This is my first tab</div> 
     <div id="tab2" style="display:none">This is my second tab.</div> 
    </div> 
    <script src="reports.browse.js"></script> 
    <script>reports_browse.init();</script> 
</div> 

我的init()函數,然後做:

$(document).bind("pagebeforeshow", function(prev_page){ 
    // Populate the two tabs here. 
}); 

希望這有助於。