下面的代碼顯示了一個函數cacheListPrint()
,它使用Phonegap在JQuery Mobile框架的「主頁」頁面上的按鈕元素中調用onclick
。JQuery 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是相對較新的語言 - 所以需要了解一些基本的細節。