0

我正在开发一个用于学习目的的应用程序。

有一个带有 2 个按钮的标题、内容和导航栏。

body="onLoad()" 函数在应用程序启动时运行良好,但是当我单击导航栏上的另一个按钮时,我想触发一个显示页面内容的函数。但是当我在新的 HTML 文件中调用与索引文件 (body="contentLoader()") 完全相同的函数时,它不会触发!

下面是 index.html 中的代码

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


<body onload="onBodyLoad()">

现在我想点击导航栏上的“Listview”按钮,它有一个自己的 HTML 页面,也有

<body onload="onListLoad()">

但是我的 javascript 函数function onListLoad() { alert("test"); }没有触发。

我不知道为什么。这不是正常的方式吗?

提前致谢。问候,约翰。

4

1 回答 1

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.
});

希望这可以帮助。

于 2012-05-13T19:35:02.760 回答