0

我正在构建一个 PhoneGap Android 应用程序,并有一个加载了 Javascript 的 SQLLite DB。数据库已正确加载并且数据存在得到证实。

我正在为 GUI 使用 JQuery Mobile Framework。在应用程序的一个子页面上,我试图从数据库中加载元素并将它们作为列表元素打印出来 - 但是,我一直在尝试通过在开始列表标签中调用 'onload=""' 来做到这一点,没有调用任何函数 - 尝试通过一个简单的警报来执行此操作以确保正在发生某些事情,但什么也没有。

很高兴自己打印数据库结果,我只是想立即调用该函数。任何帮助,将不胜感激。下面的代码:

<div data-role="page" id="cachelist"> <!-- Start of cache list screen -->
        <header data-role="header">
            <h1>Cache List</h1>
            <a href="#home" data-icon="home">Home</a>
        </header>
        <article data-role="content">
            <ul data-role="listview" data-filter="true" id="cachelistList" onload="alert('test')">

            </ul>
        </article>
</div> <!-- End of cache list screen -->

这是 div - 你可以看到我正试图从开头打电话<ul>

我也尝试过调用<head>文档中的 JS 函数,我认为这不会产生影响 - 但它在下面以防万一。

<ul onload="cacheListPrint()">
</ul>


function cacheListPrint() {
    alert("Getting this far");
    db.transaction(queryDBPrint, errorCB);
}

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

function querySuccessPrint(tx, results) {
    var rows = results.rows;
    var len = rows.length;
    if(len > 0) {
        for (var i=0; i<len; i++){
            document.getElementById('cachelistList').innerHTML += 
        '<li><h1>' + rows.item(i).name + '</h1></li>';
        }
    }
}

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

1 回答 1

2

尝试使用“.pagebeforeshow”。“.pagebeforeshow”将在动画开始之前在新页面上触发。

$( '#yourPageID' ).live( 'pagebeforeshow',function(event){
    cacheListPrint();
});
于 2013-03-12T04:42:09.243 回答