2013-03-12 50 views
0

我正在构建PhoneGap Android应用程序,并且有一个用Javascript加载的SQLLite数据库。数据库已正确加载并证明数据存在。从sqllite数据库加载数据并打印到html元素

我正在使用JQuery Mobile Framework进行GUI。在应用程序的其中一个子页面上,我尝试从数据库中加载元素并将它们打印为列表元素 - 但我一直试图在打开列表标记中使用“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 --> 

这里的股利 - 你可以看到我试图从开<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); 
} 

回答

2

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

$('#yourPageID').live('pagebeforeshow',function(event){ 
    cacheListPrint(); 
});