26

phonegap+jquerymobile プロジェクトで $.mobile.changepage を使用してリダイレクトを行いました。しかし、私が混乱しているのは、すべてのページのスクリプトを同じファイル index.html に配置する必要があることです。そうでない場合、リダイレクト ページはヘッダー内の機能を実行できません。

たとえば、私のindex.htmlは次のようです $(document).bind("deviceready",function(){$.mobile.changepage("test.html");})

次に、私のデバイスは test.html にリダイレクトされます

$("#btnTest").click(function(){alert("123");})
<button id="btnTest">Test</button>

ただし、スクリプトは test.html では実行されません。次に、スクリプトを index.html に配置します。期待どおりの動作が完了しました。いずれにせよ、すべてのスクリプトを同じページに配置すると、プロジェクトを保存するのがますます難しくなります。ご協力ありがとうございます。

4

3 に答える 3

1

通常の通常の HTML ページとは異なり、jQuery Mobile はページ間を移動するときに ajax テクノロジを使用します。そのため、すべての html ページにすべての JS ファイルとライブラリを必ずインポートしてください。

よく見ると、2 番目のページをロードするときに、前のページの JS ファイルが考慮されていることがわかります。ただし、現在のページを強制的に更新すると、現在のページの js ファイルが有効になります。

先ほど言ったように、すべての html ファイルに js ファイルを必ずインポートしてください。

また、呼び出す必要はありませんdeviceready。次の構文を使用して、ページ固有の js 関数を呼び出します。

$(document).on('pageshow', '#YourPageID', function(){
    // Your code goes here
});
于 2013-04-04T06:03:22.463 に答える
1

Jquery Mobile は ajax を使用して「ページ」を読み込みます。ここでの「ページ」は、data-role=page の div です。物理ページ index.html をロードすると、changePage を使用して、そのページ内の任意の「ページ」div に移動できます。

ただし、他の物理ページから「ページ」をロードする場合、jQM はそのページから最初の「ページ」div のみをロードします。実際に何が起こるかというと、ページを変更せず、jQM は ajax を使用してその特定の「ページ」div をロードし、それを現在のページに挿入するだけです。

すべての「ページ」を html ページに配置し、そこからナビゲートする 2 つの可能なアーキテクチャがあります。または、複数ページのアーキテクチャを持つこともできます。これでいつでも混ぜられます。

ページを物理的に変更するには、リンクに rel=external を追加する必要があります。

于 2013-04-04T07:25:14.333 に答える