3

HTML の外部ソースを jQuery モバイル ページに動的に組み込もうとしています。外部 HTML を正常に組み込むことができましたが、通常の HTML のように見えます (つまり、jQuery モバイルに影響された Html ではありません)。誰かが私が間違っているかもしれないことを提案できますか?

メイン Html:

<head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.css"
    />
    <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
    <script src="http://jqueryui.com/ui/jquery-1.7.1.js"></script>
    <script src="http://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.js"></script>
    <script>
        $(document).ready(function () {
            $("#main").load('externalHtml.html');
            //$("#main").append('externalHtml.html');
            //$("#main").load('externalHtml.html #contain');
            //$("#main").page();
        });
    </script>
</head>

<body>
    <div data-role="content">
        <div id="main"></div>Main Page</div>
</body>

externalHtml.html:

<html>
<head>
     <meta name="viewport" content="width=device-width, initial-scale=1">
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
                <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.css"/>
        <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
        <script src="http://jqueryui.com/ui/jquery-1.7.1.js"></script>
        <script src="http://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.js"></script>
 </head>
<body>
external html
<div data-role="content" id="contain">
<input  type="search" name="name" id="name" value="" />
 </div>
      </body>
      </html>
4

1 に答える 1

8

コンテナ要素を使用している場合.trigger('create')、jQuery Mobile はコンテナ内のすべてのウィジェットを自動的に初期化します。例えば:

$("#main").load('externalHtml.html').trigger('create');

彼らはこれをより適切に文書化する必要がありますが、各タイプのウィジェットの API イベントを見ると、createイベントに関する文書が表示されます。

また、ドキュメントのこのページの上部をお読みください: http://jquerymobile.com/demos/1.1.1/docs/api/events.html

疑似ページのイベントを使用してはならずdocument.ready、代わりにバインドする必要があります。pageinit使用document.readyすると、将来的に頭痛の種になる可能性が高くなります。

- アップデート -

.trigger('create')初期化を試みる前に外部 HTML が読み込まれるように、おそらくコールバックを呼び出す必要があります。

$("#main").load('externalHtml.html', function () {
    $(this).trigger('create');
});
于 2012-08-02T21:54:52.960 に答える