下面的代码显示了一个函数 cacheListPrint()
这是从 onclick
调用的使用 Phonegap 的 JQuery Mobile 框架“主页”页面上的按钮元素。
下面的 HTML 显示了从 href
加载的目标页面“主页”页面的元素。
cacheListPrint()
函数从 SQLLite 数据库中检索数据,然后使用该数据库动态创建和填充无序列表作为 JQuery viewlist
元素。
当页面加载时, View 列表没有格式化,只是显示从数据库中检索到的每个元素的文本标题和图像。正在显示数据并且与从数据库请求的数据一致 - 所以我知道列表已成功创建,只是无法正确呈现。
我试过使用 $('#placeslist').viewlist();
& $('#placeslist').viewlist('refresh');
在.trigger('create')
的位置目前已作引用。它们都不起作用。我也试过移动 .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 对我来说是相对较新的语言 - 因此,如果能对必要的内容进行基本分解,我们将不胜感激。
最佳答案
试试看
$("#placeslistcontainer ul").listview();
listview("refresh");
似乎在您更新现有 ListView 时起作用。
关于javascript - JQuery Mobile 没有方法 'listview()',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15375259/