2

在花了最后几天试图找到解决方案之后,现在我正在寻求帮助以了解哪些是/是我的代码的错误/s。从以下外部 Json 文件开始listviewJsonData.json

var itemList = [{"title":"Title_1","description":"Blah blah1"},{"title":"Title_2","description":"Blah blah2"}];

我正在通过以下代码更新列表视图:

<div id="dataList">
     <ul data-role="listview" data-inset="true">
        <script type="text/javascript">
            var serviceURL = "https://.../.../listviewJsonData.json";
            var outputitem = '';
            $.getJSON(serviceURL,function(data) {
                $.each(data, function(index,item) {
                        outputitem += '<li><h4>'+ item[index].title +'</h4></li>';
                        $('#dataList').append(outputitem);
                    }
                    $('#dataList').listview('refresh');
            }); 
        </script>
     </ul>
</div>

这段代码没有给我任何更新,并且列表视图仍然是空的,我也检查了这篇文章,但我无法找到解决我的问题的方法。

谁能给我任何帮助?非常感谢

4

2 回答 2

1

您的脚本是内联的,可能会在 jQuery Mobile 加载或增强您的标记之前触发。尝试通过将脚本作为 pageinit 事件的一部分触发来调用脚本。

http://jquerymobile.com/demos/1.2.0/docs/api/events.html

$( '#aboutPage' ).live( 'pageinit',function(event){
  enhanceMyDataList();
});

此外,您将<li>项目附加到容器<div>,而不是您的<ul>. 移动/组合您的id属性。

<ul id="dataList" data-role="listview" data-inset="true">

于 2013-01-02T14:17:08.800 回答
0

尝试这个:

<div>
  <ul id="dataList" data-role="listview" data-inset="true">
  </ul>
  <script type="text/javascript">
     var serviceURL = "https://.../.../listviewJsonData.json";
     $.getJSON(serviceURL,function(data) {
       $.each(data, function(index,item) {
         $('#dataList').append('<li><h4>'+ item.title +'</h4></li>');
       });
       $('#dataList').listview('refresh');
     });
  </script>
</div>

编辑:我将 div id 更改为 ul 和脚本上的语法错误。

于 2013-01-02T15:25:24.757 回答