1

リスト項目を含むリストビューを jQuery モバイル折りたたみ可能グリッドに追加しています。これが私のDefault.jsコードです

$(document).ready(function () {


    var appNames = getApprovalNames(phone, pin);

    for (var i = 0; i < appNames.length; i++) {

        var header = '<h3>' + appNames[i].Name + '</h3>';

        var ulHeader = '<ul data-role="listview" id="myAppsSectionGridTable">';

        var approvals = getApprovalInformation(phone, pin, appNames[i].Name);

        var listArray = new Array();


        for (var j; j < approvals.length; j++) {

            var link = '<li><a href="' + 'NickData' + '"' + '><img src="';
            var detailHeader = '" alt="" class="ui-li-icon"/>' + '<h3>' + 'NickData' + '</h3>';
            var detail = '<p>' + 'NickData' + '</p>' + '</a>' + '</li>';

            var list_item = link + detailHeader + detail;

            listArray.push(list_item);

        }

     var entire_list = null;

     for (var y in listArray) {

        entire_list = entire_list + listArray[y];

    }

    $('#accMain').append(header + ulHeader + entire_list + '</ul>');

    }   

});

このコードは画面にデータを表示しますが、jQuery モバイル CSS は画面のどこにもありません。また、ソースでそれを見ると、新しく作成したマークアップがそこに表示されません。これを間違ったイベントか何かに追加していますか? ページにマークアップをハードコードするだけで、すべて正常に動作します。jQuery モバイル マークアップを動的に追加することと関係があります。

<asp:Content ID="HContent" ContentPlaceHolderID="HeadContent" runat="server">

<script src="Js/Pages/Default.js" type="text/javascript"></script>

</asp:Content>
<asp:Content ID="THContent" ContentPlaceHolderID="TopHeaderContent" runat="server">
    <h1>
        Applications</h1>
</asp:Content>
<asp:Content ID="MContent" ContentPlaceHolderID="MainContent" runat="server">

 <div id="accMain" data-role="collapsible" data-inset="false" data-collapsed="false">

 </div>

</asp:Content>

このマスターページの本文は..

<body>

<div data-role="page" data-theme="b">

    <div data-role="header" data-position="fixed">

         <asp:ContentPlaceHolder ID="TopHeaderContent" runat="server"></asp:ContentPlaceHolder>


    </div><!-- /header -->

    <div data-role="content">   

 <asp:ContentPlaceHolder ID="MainContent" runat="server"></asp:ContentPlaceHolder>

    </div><!-- /content -->

    <div data-role="footer" data-position="fixed">
    <asp:ContentPlaceHolder ID="FooterContent" runat="server"></asp:ContentPlaceHolder>


    </div><!-- /footer -->

</div><!-- /page -->

</body>
4

1 に答える 1

6

listviewメソッドを呼び出す必要があります

$('#mylist').listview()

既存のリストビューにコンテンツを追加するだけの場合は、refreshメソッドを呼び出します

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

pageshow次のように、イベントで呼び出す必要がある場合があります。

 $('#myPage').on('pageshow', function() {
     try 
    {
       $('#mylist').listview('refresh');
    } catch (e) {
     $('#mylist').listview();
    }
});

拡張が必要な​​複数のウィジェット/アイテムを追加する場合は、作成イベントのトリガーを試すことができます

$('#myPage').trigger('create');
于 2012-08-28T15:56:00.337 に答える