2012-09-16 26 views
1

我使用jquerymobile,現在我想把裏面放到一個ul列表視圖與json。Jquerymobile Json listview

我必須遵循代碼:

<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> 

它的工作原理,但不是裏面的。

有沒有人現在我該如何解決這個問題?

親切的問候, 湯姆

回答

0

孩子的選擇/兒童可能會扔它關閉了一下,試試這個,看看是否有差別。

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

由於要附加這些列表項的DOM加載後的列表,並使用jQueryMobile你將有一個額外的項目添加到爲元素的功能鏈。像這樣:

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

創建是一個jQuery的移動事件。當最初加載DOM時會觸發它,並在加載DOM時爲DOM中的所有元素設計風格。然而,通過添加新的樣式,他們將不會擁有樣式,因爲jquerymobile不會依賴傳統樣式表關係中的CSS。它使用樣式表進行樣式設計,但樣式根據容器類型示例得到應用

data-role="header"在加載dom後得到樣式,所以即使您使用傳統方法使用CSS樣式化特定元素,jquery mobile也會在DOM準備

+0

它看起來像它的工作,但它沒有風格,但它不會從jwuerymobile .. – tom

+0

jquerymobile得到ListView控件的樣式有一個「重新創建」的方法或構建或某種程度上,我不記得它是什麼Xactly公司。但是當你在元素被加載後向DOM添加元素時,你必須在它們上運行這個方法來讓它們變爲樣式。 – chris

+0

林不知道這是否正確,但在我的答案和「鏈」'.page()'應用上面的邏輯到它的末尾。我再次認爲,不會100%確定這會將設置的樣式應用於新添加的元素,但您可能不得不考慮將其應用於其中的一點點不同的方法,因爲它會經歷一個循環,並且您只想執行一次,所以也許在循環之外而不是附加放置頁面,而在循環內部附加。 – chris

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>