1

jQueryロードを使用してページに外部データをロードしてから、jQuery Mobileを再度実行して、トリガーを使用してテーマなどを適用したいと思います。データは正常にロードされますが、適切にスキンが変更されません。プロジェクト全体が大きすぎるため、これを示すために小さな例をまとめました。

私はa.htmlを持っています:

<!DOCTYPE html> 
<html>
      <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1"> 
      <title>Test</title>
      <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
      <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
      <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>

      <script>    
function replaceData1() {
$("#a-page").load("b.html");
$("#a-page").trigger('create');
}    
    </script>
</head> 
<body> 

<div data-role="page" id="a-page">
            <div data-role="header" data-theme="a">Header A</div><!-- /header -->

            <div data-role="content" id="a-content">
            Content A
            <button onClick="replaceData1()">goto B</button>
            </div><!-- /content -->

            <div data-role="footer">Footer A</div><!-- /footer -->

            </div><!-- /page -->
</body>
</html>

そして私はb.htmlを持っています:

<div data-role="header" data-theme="d">Header B</div><!-- /header -->

        <div data-role="content" id="b-content">Content B</div><!-- /content -->

        <div data-role="footer">Footer B</div><!-- /footer -->

b.htmlは完全なhtmlファイルではなく、コンテンツだけです。これがこの問題の原因であるかどうかはわかりません。

それでも、a.htmlをロードしてボタンをクリックすると、b.htmlのコンテンツは正しくロードされますが、テーマが適切ではありません。後でtrigger('create')を実行しても動作しません。私は何を間違えましたか?誰かがこれを書き直して、私が意図したとおりに機能するようにできますか?

4

1 に答える 1

0

これを試して

<!DOCTYPE html>
<html>
  <head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Test</title>
  <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
  <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
  <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
</head>

<body>
  <div data-role="page" id="a-page">
    <div data-role="header" data-theme="a">Header A</div><!-- /header -->
    <div data-role="content" id="a-content">Content A <button onClick="$.mobile.changePage('#b-page');">goto B</button></div><!-- /content -->
    <div data-role="footer">Footer A</div><!-- /footer -->
  </div><!-- /page -->

  <div data-role="page" id="b-page">
    <div data-role="header" data-theme="d">Header B</div><!-- /header -->
    <div data-role="content" id="b-content">Content B <button onClick="$.mobile.changePage('#a-page');">goto A</button></div><!-- /content -->
    <div data-role="footer">Footer B</div><!-- /footer -->
  </div><!-- /page -->

</body>
</html>

スクリーンショット1

スクリーンショット2

于 2012-10-28T19:45:11.330 に答える