0

モバイルアプリケーションにJquerymobileを使用しています。ページを変更する前に、そのページでCSSを変更したいと思います。たとえば、次のページのIDにクラスを追加したり、色を変更したりする場合:$("#divA1").css("background-color","blue");

id現在のページ(存在する場合)で同じように変更してから、次のページを変更します。CSS1つのページで設定を設定し、次のページにそれらの設定をロードするにはどうすればよいですかCSS

4

3 に答える 3

0

ほとんどのシナリオでは、jQueryMobileはajax呼び出しを介して追加のページをDOMにロードします。これは、動作のかなり基本的な部分であり、すべてのページのすべてのマークアップIDが一意であることを確認する必要があります。

<div id="page1" data-role="page">
    <div data-role="content">
        <div id="myContent1"></div>
    </div>
</div>

<div id="page2" data-role="page">
    <div data-role="content">
        <div id="myContent2"></div>
    </div>
</div>

ページに同様のサブコンポーネントが含まれている場合は、代わりにクラスを検討してください。

<div id="page1" data-role="page">
    <div data-role="content">
        <div class="myContent"></div>
    </div>
</div>

<div id="page2" data-role="page">
    <div data-role="content">
        <div class="myContent"></div>
    </div>
</div>

クラスは次のような選択を可能にします$("#page1.myContent").css("background-color");

于 2013-01-08T21:06:08.203 に答える
0

新しいページに配置する必要がある場合は、3つのオプションがあります。

  1. URLに変数を渡して、新しいページでテストし、CSSを適切に変更できます。例えば。www.url.com?newcolor = f00

  2. 現在のページに非表示のフォームを配置し、その中の値を更新して、次のページに移動するときに渡すことができます。(それを行うための醜い方法ですが、それは機能します。)

  3. クッキーを設定します。(私の好みの解決策は、Cookieが有効になっている限りうまく機能します。正直なところ、Cookieが有効になっていない可能性があります。)

ただし、特にモバイルデバイスでの最善のオプションは、ページの現在のフレームワークを維持し、ajaxを介して新しいコンテンツを取得し、それを現在のページのコンテンツdivにロードすることです。

于 2013-01-08T21:12:47.523 に答える
0

あなたが何をしようとしているのか正確にはわかりませんが、非同期ajax呼び出しを使用して次のページのDOMをダウンロードすることをお勧めします。

次に、必要な変更をそのDOMに適用し、最後にそれを現在のDOMに接続します。

そのwoulのスタブは次のようになります。

$.ajax('path/to/next/page', {
  async : true,
  complete : function ajaxCallback(newSite) {
    $item = $('YOURSELECTOR');
    // Here you can make changes, such as CSS edition
    $item.css({'background-color' : '#FF0000'});
    // Since you want to make changes to the new site only if you did them in the first site...
    if ($item.length > 0) {
      $(newSite).find('YOURSELECTOR').css({'background-color' : '#FF0000'});
    }

    // Here you can append the new site to the DOM

  }
}); 
于 2013-01-08T21:10:49.177 に答える