2012-04-24 50 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");。如果尚未创建,则无法刷新列表视图。