1

JQuery Mobile PhoneGapアプリケーションをより適切に整理するために、新しいページでタグを使用できるようにし、ページが表示されたときに、changePageなどを使用してJSを入力できるようにしたいと思います。

これまでのところ、これを行うための私の努力は、私が探しているものを生み出していません。index.htmlにすべてのJSファイルを含めてから、PageShowイベントハンドラーに条件付きロジックを記述しない限り、これは適切なソリューションではありません。

何かご意見は?

4

3 に答える 3

2

data-role="page"jQuery Mobile を使用して (AJAX 経由で) ロードされたページに新しい JS インクルードを導入するには、各ページのまたは ( ) 要素内にそれらのファイルへの参照が必要です。これは、data-role="dialog"jQuery Mobile が AJAX ページのロード中にこれらの要素の外側で何も処理しないためです。

または、JavaScript を使用してscript、各ページ遷移の「pageshow」イベントで新しいタグを動的に作成することもできます。このようなもの:

$(document).on('pageshow', 'div[data-role*="page"],div[data-role*="dialog"]', function () {
     (function () {
        var script = document.createElement('script'); script.type = 'text/javascript'; script.async = true;
        script.src = '/path/to/new/include.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(script, s);
    })();
});
于 2012-05-10T18:44:07.943 に答える
1

<script>タグの配置を修正しても解決されなかった同様の問題もありました。コードにコンパイルエラーがある場合(私の場合、 forループ変数を宣言するときintの代わりに置くvar)、スクリプト全体がロードされず、ログにエラーがスローされないようです(少なくとも、 EclipseのAndroidシミュレーターのLogCat)。必ず最初にJSLintのようなエラーチェッカーを使用してスクリプトを実行してください。

于 2012-08-07T13:18:13.653 に答える
0

JQMは残りをスキップするため、JSコードを「div data-role = 'page'内に移動するだけです

于 2013-06-27T16:49:25.567 に答える