1

私はjquerymobileを使用していますが、jsonを使用してulリストビューにliを入れたいと思っています。

コードに従う必要があります:

<script type="text/javascript">
$(function() {
$(document).ready(function(){

        $.getJSON("url",function(data) {
                $.each(data.posts, function(i,data){

                $('#output').children('ul').append('<li><a href="#">'+data.title+'</a></li>');

                });
            }
        );
        return false;
    });
});
</script>


<div data-role="content">
    <div class="content-primary">   
        <div id="output">
               <ul data-role="listview">

                </ul>
            </div>
            </div>
</div>

動作しますが、内部では動作しません。

どうすればこれを修正できますか?

よろしく、トム

4

2 に答える 2

0

私はこれが機能していることを解決します:

<script type="text/javascript">
$(function() {
$(document).ready(function(){
        $.getJSON("url",function(data) {

                $.each(data.posts, function(i,data){

                $('#output ul').append('<li></li>');

                });
                $('#output ul').listview('refresh');
            }
        );      
    });             
});

</script>   
于 2012-09-18T08:48:23.183 に答える
0

子供/子供の選択は少しそれを捨てるかもしれません、これを試してみて、それが違いを生むかどうか見てください.

$('#output ul').append(..........);

DOM がロードされた後にこれらのリスト アイテムをリストに追加し、jQueryMobile を使用しているため、要素の関数のチェーンに追加のアイテムを追加する必要があります。そのようです:

$('#output ul').append(..........).trigger('create');

Create は jquery モバイル イベントです。これは、DOM が最初にロードされたときに起動され、DOM がロードされたときに DOM にあるすべての要素をスタイリングします。ただし、新しいものを追加すると、jquerymobile は従来のスタイルシートの関係を介して css に依存しないため、スタイルがなくなります。スタイリングにスタイルシートを使用しますが、コンテナー タイプの例に従ってスタイリングが適用されます。

data-role="header"DOM が読み込まれた後にスタイルが設定されるため、CSS jquery mobile で従来の方法を使用して特定の要素のスタイルを設定した場合でも、DOM の準備が整った後にオーバーライドされます。

于 2012-09-16T18:37:43.313 に答える