我是 jquery mobile 的新手。
我的问题是首先,我必须从数据库中获取一个值(对于使用 fn toGetQuestionNumber 的 QnNumber),然后在 xmlParser 函数中使用该值。
如果以正确的顺序执行 - 警报应按顺序显示 - 第一、第二、第三。
但是显示的是警报以第二、第三、第一的形式出现。(意味着 db 函数 toGetQuestionNumber 仅在最后执行!)
如何让 toGetQuestionNumber 首先执行 - 所以我得到 QnNumber 的值 - 然后执行 xmlParser?
/////////////////////////////////////////
$('#alpha').live('pageshow', function(event) {
var day = getUrlVars()["day"];
var module = getUrlVars()["module"];
var QnNumber=1;
var db = openDatabase("Exam", "1.0", "The Exam", 200`enter code here`000);
var dataset;
var selectAllStatement = "SELECT TotQn, TotAnswd FROM QuizScore where DayID=" + day + " and ModuleID=" + module ;
function toGetQuestionNumber() {
db.transaction(function(tx)
{
tx.executeSql(selectAllStatement, [], function(tx, result)
{
dataset = result.rows;
for (var i = 0, item = null; i < dataset.length; i++)
{
item = dataset.item(i);
//if(item['TotAnswd']>0)
//{
QnNumber = item['TotAnswd'];
alert('First=' +QnNumber); ////// First Alert
//}
}
});
});
}
toGetQuestionNumber();
alert('Second' + QnNumber); ////// Second Alert
var xml;
$(document).ready(function(){
$.ajax({
type: "GET",
url: "data/quiz.xml",
dataType: "xml",
success: xmlParser
});
});
//loading XML file and parsing to .main div.
function xmlParser(data)
{
xml = data;
$('#list').empty();
alert('Third' + QnNumber); ////// Third Alert
}
$('#list').trigger('create');
});
///////////////////////////////////////// //////