2012-03-18 9 views
1

私はリストビューを持つJQuery Mobileアプリケーションを作成しています。私はそのリストビューにWebサービスの結果を入力しています。このため、リストビューのアイテムは、次のように表示されます。JQuery Mobile - Dynamic Count Bubbles

$.each(results, function (i, result) { 
    var s = "<li><h2 style='padding-left:40px;'>" + result.title + "</h2><p style='padding-left:40px;'>"; 
    s += result.subTitle; 
    s += "</p><span class='ul-li-count'>" + result.count + "</span></li>"; 

    $("#resultListView").append(s); 
}); 
$("#resultListView").listview("refresh"); 

リストビューに正しく入力されています。カウントバブルの値が表示されます。ただし、UIはバブルを描画しません。カウントビューを使用して結果セットを動的に構築する方法はありますか?もしそうなら、どうですか?

ありがとうございました!

答えて

2

あなたの方法はうまくいくはずです。私が考えることができるのは、HTMLが有効でないことだけです。

とにかく、私はそれが可能であることを示すために簡単なバージョンを作成しました。 http://jsfiddle.net/kiliman/HDUqp/

`)(基本的には、ちょうど<li/>のためのHTMLを構築し、リストに追加し、その後、あなたの例では、作品起こす私が.listview('refresh')

$('#page1').bind('pageinit', function(e, data) { 
    var n = 0; 
    $('#addResult').click(function(e) { 
     var $list = $('#resultListView'); 

     n++; 
     $('<li/>') 
      .append($('<h2>', { text: 'Title ' + n })) 
      .append($('<p>', { text: 'SubTitle ' + n })) 
      .append($('<span />', { text: n, class: 'ui-li-count'})) 
      .appendTo($list); 
     $list.listview('refresh'); 
    }); 
}); 
+0

+1を呼び出すが、私は真剣に' APPEND連鎖ないことをお勧めあなたの例ごとに新しいjqueryオブジェクトを持つメソッド。 HTMLの文字列を作成し、 'append'を一度呼び出す方が効率的です。 – shanabus

+0

私は通常HTMLを生成するためにテンプレートを使います。サンプルでは、​​適切なHTMLが作成されたことを確認したかっただけです。 – Kiliman

+0

@shanabusこのようにしてappendを使うのは完全に合理的だと思います。最も人気のあるサイトを除いて、この少しのjavascriptは、ユーザーやサーバーを担当する運用スタッフが認識したパフォーマンスに影響を与えません。この場合、別の文字列連結よりも可読性が優れています。 – CodeMonkeyKing