0

私は学習目的のアプリに取り組んでいます。

2 つのボタンを備えたヘッダー、コンテンツ、およびナビゲーション バーがあります。

body="onLoad()" 関数は、アプリの起動時に非常にうまく機能しますが、ナビゲーション バーの別のボタンをクリックすると、ページのコンテンツを表示する関数を起動したいと考えています。しかし、インデックス ファイル (body="contentLoader()") とまったく同じ方法で新しい HTML ファイルの関数を呼び出すと、関数は起動しません。

index.html のコードを次に示します。

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


<body onload="onBodyLoad()">

そして今、ナビゲーションバーの「リストビュー」ボタンをクリックしたいと思います。これには独自の HTML ページがあり、これも

<body onload="onListLoad()">

しかし、私のJavaScript関数function onListLoad() { alert("test"); }は起動していません。

理由がわかりません。これは通常の方法ではありませんか?

前もって感謝します。よろしく、ジョン。

4

1 に答える 1

0

サブページ内のタグが PhoneGap 内で取り除かれていることは確かです。メインのインデックス ページだけが onload メソッドを起動します。

私が収集した情報によると、ナビゲーション タブの 1 つがアクティブになるとすぐにコードを起動しようとしています。それを行うための「適切な」方法をお伝えできるかどうかはわかりませんが、私が行うことは次のとおりです。

<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 に答える