6

さまざまなファイルで配布されているjQueryMobileプロジェクトがあります。

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" charset="utf-8" src="cordova-2.3.0.js"></script>
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />

        <link rel="stylesheet" href="css/custom.css" />

        <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
        <script src="js/methods.js"></script>
    </head>
    <body>
        <!-- Termine Page -->
        <div data-role="page" id="firstPage">
            <div data-role="header" data-position="fixed">
                <h1>Header 1</h1>
                ...
            </div><!-- /navbar -->

            <div data-role="content">
            ...
            </div>
        </div>
    </body>
</html>

secondPage.html

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" charset="utf-8" src="cordova-2.3.0.js"></script>
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />

        <link rel="stylesheet" href="css/custom.css" />

        <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
        <script src="js/methods.js"></script>
    </head>
    <body>
        <div data-role="page" id="pageTwo" class="ui-page">
            <div data-role="header" data-position="fixed" id="terminDetailSeiteHeader">
            <h1>Header 2</h1>
        </div>
        <div data-role="content">
                <div id="contentToFillWithDynamicListView"></div>
            </div>
        </div>
    </body>
</html> 

次に、php-Scriptを呼び出してリストビューを生成するスクリプトを取得しました。

function listViewCreation() {
    var url = 'http://www.myServer.com/myPhp.php?someParameters=1&callback=?';
        $.getJSON(url, function(data) {
            $('#contentToFillWithDynamicListView').empty();
            var collapsibleList = '<ul data-role="listview">';
            var myselfIsIncluded = 0;
            $.each(data, function(key, value) {
                collapsibleList += '<li>' + value['displayName'] + '</li>';
            });
            collapsibleList += '</ul>';

            $('#contentToFillWithDynamicListView').html(collapsibleList).trigger('create');
        });
    }

.trigger('create')はエラーにつながります...何が欠けていますか?

編集1

listViewCreationは、次のように呼び出されます。

$("#pageTwo").live("pageshow", function(e, data){
    listViewCreation();
});

編集2 別のサーバーからリモートデータをフェッチしています。これがエラーの原因のようです。しかし、それを解決する方法がわかりません...両方のページ(1と2)でデータをフェッチしています。最初のページでは機能しますが、2番目のページでは機能しません...

$.getJSON(url, function(data) {
    ...
}
4

1 に答える 1

9

jQuerymobileの最後の安定バージョンを使用していることがわかります。

あなたの問題は

trigger('create');

jQueryモバイルリストビューのスタイル変更には使用されません。使用する必要があります:

.listview('refresh');

代わりは。公式のjQMドキュメントを信頼しないでください。trigger ('create')は非推奨にする必要があります。すべてのjQMウィジェットには、ボタン('refresh')などの更新を目的とした関数があります。

また、ヘッダー、フッター、またはコンテンツを変更するときにtrigger('create')を使用しないでください。機能しません。ページでpagecreateをトリガーできます。

trigger('pagecreate');

編集 :

の場合には:

キャッチされないエラー:初期化の前にリストビューのメソッドを呼び出すことはできません。メソッド'refresh'を呼び出そうとしました

電話:

$('#listviewid').listview().listview('refresh');

最初の呼び出しで初期化され、2番目の呼び出しでスタイルが設定されます。

この記事でこのトピックの詳細を見つけてください

于 2013-01-16T21:16:40.350 に答える