1

この index.html と login.html があり、href を使用してインデックスからログインにリンクします。それぞれの index.html と login.html に javascript をインポートします。ただし、読み込まれている index.html のものだけが表示されるようです。そのため、login.html の index.html に js を配置すると、正常に動作します。しかし、それを個別に配置します(index.htmlにないlogin.htmlの別のjs)、機能しません

ティア

4

3 に答える 3

4

JQM (jQuery モバイル) がページをロードするとき、これを達成するために ajax を使用します。これが発生すると、セクション内のすべてのコード<head>が無視されます。JQM は data-role="page" 部分を探し、index.html と同じ dom に挿入します。したがって、基本的には、js を index.html ページに追加するときに正しい方法で行っています。

特定のページで動作するように js コードを区分化する場合は、次の例を使用します。

$(document).on('pageinit', '#page1', function(){
    // code for #page1
});
$(document).on('pageinit', '#page2', function(){
    // code for #page2
});
$(document).on('pageinit', '[data-role=page]', function(){
    // this code will execute for every page that is data-role="page"
});

それでは、すべてのコードを 1 つのファイルにまとめてください。上記のようにコードを適切なページに分割し、それを index.html ファイルに含めます。

また、JQM バージョン 1.0.1 を jQuery バージョン 1.6.4 (1.0.1 で推奨) で使用している場合は、.on() の代わりに .delegate() を使用します。すなわち

$(document).delegate('#page1', 'pageinit', function(){  // notice that pageinit and #page1 are switched around for delegate
    // code for #page1
});  // interesting to note that if you use delegate in jQuery 1.7.x it actually just calls the .on() method.

phonegap アプリの代わりに Web アプリケーションを作成する場合は、javascript をその 1 つのファイルに入れ、それをすべてのページに含めるのが賢明です。このようにして、誰かがリンクをたどったり、あなたのページをブックマークしたりした場合でも、必要な正しい JavaScript ファイルを取得できます。

とにかく、それがお役に立てば幸いです。幸運を!

于 2012-04-26T08:58:01.970 に答える
0

コード、具体的にはページが相互にリンクする方法、およびアプリに設定したグローバル構成設定がある場合は投稿してください。jQM と同様に、ページ アーチには複数のプラクティスと戦略がサポートされています。

また、デスクトップ ブラウザー ツールを使用して学習し、「リソース」を表示して、リソースがいつ読み込まれるかを確認することもできます。

于 2012-04-26T21:17:16.990 に答える
0

実行している場合はwindow.location.href、新しい HTML がロードされます (この場合は login.html)。このアプローチを使用している場合は、すべてのスクリプトを再度リロードして、これらのスクリプトをすべての .html ページに追加する必要があります。

<script src="cordova-1.6.0.js" type="text/javascript"></script> 
<script type="text/javascript" src="jquery/jquery-1.7.1.min.js"></script>
<link rel="stylesheet" href="jquerymobile/jquery.mobile-1.1.0.min.css" />
<script type="text/javascript" src="jquerymobile/jquery.mobile-1.1.0.min.js"></script>

ただし、@deadlock が推奨するアプローチを使用する場合は、スクリプトを 1 回ロードするだけで済みます。後者のアプローチが最適です。

于 2012-04-26T08:59:32.377 に答える