私はjqueryモバイルが初めてです。
私の問題は最初に、データベースから値を取得する必要があり (fn toGetQuestionNumber を使用して QnNumber の場合)、その値を xmlParser 関数で使用する必要があります。
適切な順序で実行された場合、アラートは 1 番目、2 番目、3 番目の順序で表示されます。
しかし、表示されているのは、アラートが 2 番目、3 番目、1 番目として発生していることです。(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');
});
/////////////////////////////////////////////// //////