Phonegap,单击Navbar Button时如何触发功能

时间:2012-05-13 09:53:14

标签: javascript jquery function cordova

我正在开发一款用于学习目的的应用。

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

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

继承index.html的代码

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


<body onload="onBodyLoad()">

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

<body onload="onListLoad()">

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

我无法弄清楚原因。这不是正常的方式吗?

提前致谢。问候,约翰。

1 个答案:

答案 0 :(得分: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.
});

希望这有帮助。