1

PHP からデータを取得し、リストビューに動的に追加します。「その場で」静的データのみを追加すると、すべてが完璧に見えますが、データがphpファイルから取得されると、jQuery Mobileはリストエントリの後にスペースを追加します. 既知の問題はありますか?!

私のjsファイルは次のようになります:

        userda = '';
    $.ajax({
           type: "POST",
           url: "userdata.php",
           data: {"iduser": iduser},
           dataType: 'json',
           cache: false,
           success: function(data1){
           userda += '<li data-role="list-divider">Name</li>';
           userda += '<li>'+data1.data.fname+' '+data1.data.lname+'</li>';
           userda += '<li data-role="list-divider">Money</li>';
           userda += '<li>'+data1.data.money+'</li>';
           userda += '<li data-role="list-divider">Headlines</li>';
           $.each(data1.headlines, function(i, currentObj) {
                  userda += '<li>' + currentObj + '</li>​';
                  });
           $('ul#userdatalist').html(userda).listview('refresh');
           }
           });

私のHTMLファイルは次のようになります

<ul data-role="listview" data-inset="true" data-theme="c" data-divider-theme="a" id="userdatalist">
                    </ul>

(json) データは次のようになります。

{"data":{"fname":"test","lname":"test","money":"47"},"headlines":["Promis","Unterhaltung","Unterwaesche"]}

結果は次のようになります: http://imageshack.us/photo/my-images/705/bildschirmfoto20120619uj.png/

問題はありませんが、2番目のリストビューでも同じ問題があります。

4

1 に答える 1

0

2 つのアイデア:

  1. リストを台無しにする可能性のある .live() または .delegate() 関数を偶然持っていますか?

  2. 標準の for ループを使用して jquery と組み合わせることができます (「成功」では jquery ではなく標準の js を使用しているため)。または、.each() ループで jquery を使用します。

    var $ul = $('ul#userdatalist'); // selector to the ul being filled 
                                    // (btw: since an id has to be unique, 
                                    // it is useless to prepend the tagType
    
    $ul.append(userda); // this is the jquery way -
                        // more or less ;)
    
    for (var i = 0;i < data1.headlines.length; i++) {
        $e = $("<li/>").text(data1.headlines[i]); // you could do this in your 
                                                  //.each()-loop as well, thus 
        $u.append($e);                            // sticking to jquery            
    }
    
于 2012-08-10T12:14:36.760 に答える