在Jquerymobile列表视图中显示联系人(phonegap)

时间:2013-06-19 01:55:54

标签: cordova

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

   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!');
 }

1 个答案:

答案 0 :(得分:0)

虽然您已回答了自己的问题,但为了突出显示我正在添加回复的问题。

来自Docs

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

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

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

$('.real').listview('refresh');
相关问题