2012-04-24 51 views
0

我的影片動態地從一個JSON文件生成這樣一個ListView:jQueryMobile listview不造型;語法似乎是正確的

$.getJSON('test2.json', function(data) { 
       var items = []; 
       $.each(data, function(key, val) { 
        items.push('<li data-theme="c" data-icon="myapp-arrow" class="test1"><a href="#dataviewer" data-transition="slide"><p>' + key + '</p>' + val + '</a></li>'); 
       }); 
       $('<ul/>', {'data-role' : 'listview','id': 'my-new-list', 'data-divider-theme':'a', 'data-inset': 'false',html: items.join('')}).appendTo('.container'); 
       alert('Here is where the refresh should fire!'); 
       $("#my-new-list").listview("refresh"); 
      }); 

它添加列表項的頁面,但它並沒有他們的風格可言。使用Chromes檢查器,如果我將清單代碼複製並粘貼到我的html文檔中,它的樣式就好了。我究竟做錯了什麼?

+0

這是否警報火? – codaniel 2012-04-24 10:08:08

+0

警報火警 - 如果我從另一個頁面導航到列表樣式,但只是注意到列表樣式正確,但如果頁面本身已刷新,則不會。 – Squishy 2012-04-24 10:49:38

+0

好吧我懷疑它必須處理代碼中的其他內容。你可以向我們展示更多的東西,或者創建一個說明問題的jsFiddle。讓我問你,這是你使用dom ready即$(function(){...});而不是綁定到pageinit? – codaniel 2012-04-24 10:57:35

回答

0

將函數綁定到page init並從.listview()方法中刪除「refresh」解決了我的問題。據我所知,在這個初始函數之後建立的任何附加列表應該包括('#page-id')。listview(refresh);它應該更新得很好。

$('#searchpage').live('pageinit',function(){ 
       $.getJSON('test2.json', function(data) { 
        var items = []; 
        $.each(data, function(key, val) { 
         items.push('<li data-theme="c" data-icon="myapp-arrow" class="test1"><a href="#dataviewer" data-transition="slide"><p>' + key + '</p>' + val + '</a></li>'); 
        }); 
        $('<ul/>', {'data-role' : 'listview','id': 'my-new-list', 'data-divider-theme':'a', 'data-inset': 'false',html: items.join('')}).appendTo('.container'); 
       $("#my-new-list").listview();    
       }); 
      }); 

感謝codaniel爲輕推我朝着正確的方向

2

嘗試$('.ui-page').trigger("create");。如果尚未創建,則無法刷新列表視圖。