2013-03-13 83 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更新現有列表視圖的工作。