2013-03-13 66 views
3

下面的代码显示了一个函数cacheListPrint(),它使用Phonegap在JQuery Mobile框架的“主页”页面上的按钮元素中调用onclickJQuery Mobile没有方法'listview()'

下面的HTML显示了从'home'页面的href元素加载的目标页面。

cacheListPrint()函数从SQLLite数据库检索数据,该数据库随后用于动态创建和填充无序列表作为JQuery viewlist元素。

页面加载时,视图列表没有格式化,仅显示从数据库中检索到的每个元素的文本标题和图像。数据正在显示,并与数据库请求的数据一致 - 所以我知道列表已成功创建,它只是无法正确呈现。

我试过在.trigger('create')当前引用的位置使用$('#placeslist').viewlist(); & $('#placeslist').viewlist('refresh');。它们都不工作。我也尝试将.trigger('create')声明移至声明<ul>正下方的行。

此外,调用任一viewlist(...)功能时,下面的错误被抛出在Eclipse调试终端:

Uncaught TypeError: Object [object Object] has no method 'listview' - 显然表明viewlist是一个未知的方法调用。

function cacheListPrint() { 
      db.transaction(queryDBPrint, errorCB); 

     } 

     function queryDBPrint(tx) { 
      tx.executeSql('SELECT * FROM cache', [], querySuccessPrint, errorCB); 
     } 

     function querySuccessPrint(tx, results) { 
       $('#placeslistcontainer').empty(); 
       $('#placeslistcontainer').html('<ul id="placeslist" data-filter="true"></ul>'); 

       $.each(results.rows, function(index){ 
        var row = results.rows.item(index); 
        $("#placeslist").append('<li><a href="#"><h1>'+row['name']+'</h1><img src="'+row['image']+'" /></a></li>'); 
       }); 
       $("#cachelist").trigger('create'); 
     } 

     function errorCB(err) { 
      alert("Error processing SQL: "+err.code); 
} 



<div data-role="page" id="cachelist" data-transition="none"> <!-- Start of cache list screen --> 
     <header data-role="header"> 
      <h1>Cache List</h1> 
      <a href="#home" data-icon="home" data-transition="none">Home</a> 
     </header> 
     <div data-role="content" id="placeslistcontainer"> 

     </div> 
     <footer data-role="footer" data-position="fixed"> 
     </footer> 
</div> <!-- End of cache list screen --> 

我通过jQuery Mobile的API读取相当广泛,花了几个小时谷歌搜索这个问题 - 应该把它们当许多的建议,“在那里”是有意义的,但实施时不工作。我对实现建议非常有信心,但对于我来说JQuery和Javascript是相对较新的语言 - 所以需要了解一些基本的细节。

回答

1

试试这个,看看

$("#placeslistcontainer ul").listview(); 

listview("refresh");似乎当u更新现有列表视图的工作。