0

我试图在 jquerymobile listview 中显示所有联系人。不幸的是,我只列出/显示了一个联系人。我使用的代码如下。谢谢

   function onDeviceReady() {
    // find all contacts with 'Bob' in any name field
    var options = new ContactFindOptions();
    options.filter=""; 
    options.multiple=true;
    var fields = ["displayName", "phoneNumbers", "photos"];
    navigator.contacts.find(fields, onSuccess, onError, options);
    }

  // onSuccess: Get a snapshot of the current contacts
  //
   function onSuccess(contacts) {
   for (var i=0; i<contacts.length; i++) {
    if(null != contacts[i].phoneNumbers)
        {
            for(var j=0;j<contacts[i].phoneNumbers.length;j++)
            {
           $('.real').append("<li'><a><img src='foto/user.png'/><h4 >" +    contacts[i].displayName +"</h4><p>"+ contacts[i].phoneNumbers[j].value +"</p></a>  </li>").listview('refresh');  

            }
        }
     }
 }
// onError: Failed to get the contacts
//
function onError(contactError) {
    alert('onError!');
 }
4

1 回答 1

0

尽管您已经回答了自己的问题,但只是为了强调这个问题,我正在添加我的回复。

文档

如果将项目添加到列表视图,则需要对其调用 refresh() 方法来更新样式并创建添加的任何嵌套列表。例如:

请注意,refresh() 方法仅影响附加到列表的新节点。这样做是出于性能原因。刷新过程将忽略任何已增强的列表项。这意味着如果您更改已经增强的列表项的内容或属性,这些将不会被反映。如果要更新列表项,请在调用刷新之前将其替换为新标记。

对于您的问题,您应该执行以下操作。

$('.real').listview('refresh');
于 2014-05-26T11:49:57.723 回答