2012-03-18 2 views
1

listview가있는 JQuery Mobile 응용 프로그램을 만들고 있습니다. 나는 웹 서비스의 결과로 그 listview를 채우고있다. 이로 인해 목록보기의 항목이 다음과 같이 채워집니다.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를 사용하는 것이 합리적이라고 생각한다. 가장 인기있는 사이트를 제외하고 자바 스크립트는 사용자 나 서버를 돌보는 운영 직원이 인식하는 성능에 영향을 미치지 않습니다. 이 경우 대체 문자열 연결보다 가독성이 좋습니다. – CodeMonkeyKing