我正在构建一个PhoneGap Android应用程序,并且有一个用Javascript加载的SQLLite数据库。数据库已正确加载并且数据存在已经过验证。
我正在使用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 -->
这是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);
}
答案 0 :(得分:2)
尝试使用&#34; .pagebeforeshow&#34;。 &#34; .pagebeforeshow&#34;将在动画开始前在新页面上触发。
$( '#yourPageID' ).live( 'pagebeforeshow',function(event){
cacheListPrint();
});