3

下面的代码显示了一个函数cacheListPrint(),该函数onclick使用 Phonegap 从 JQuery Mobile 框架的“主页”页面上的按钮元素调用。

下面的 HTML 显示了从href“主页”页面的元素加载的目标页面。

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

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

我尝试在当前进行引用的位置使用$('#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 对我来说是相对较新的语言 - 所以对必要内容的基本分解将不胜感激。

4

2 回答 2

1

试试这个看看

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

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

于 2013-03-13T05:40:08.753 回答
0

我有同样的错误信息。在我将所有应用程序代码包装在 deviceready 事件中后为我修复,正如 Phonegap 所说的很重要:http ://docs.phonegap.com/en/2.9.0/cordova_events_events.md.html#Events

于 2014-01-04T07:42:08.873 回答