这是我的代码
hasSubAcc = function(accPid) {
$.mobile.eazydb.transaction(function(tx) {
tx.executeSql('SELECT * FROM Account WHERE Account_Parent_ID="'+accPid+'"', [],
function(tx, rs){
if(rs.rows.length == 0) {
return false;
} else {
return true;
}
});
});
}
和
访问的方法alert(hasSubAcc(accid));
此警报打印未定义。这段代码有什么问题。任何解决方案都是如此。谢谢。
答案 0 :(得分:0)
问题非常明显,因为你在函数内部使用繁重的进程(即数据库),因此jquery在与主线程并行的单独线程中运行此函数,现在在这种情况下,你的值将始终未定义。
您可以在检查条件
后立即创建全局变量var hasSubAcc=-1;
if(rs.rows.length == 0) {
hasSubAcc=0;
} else {
hasSubAcc=1;
}
现在使用
延迟一小段时间setTimeout(function(){
alert(hasSubAcc);
},500);
or
while(hasSubAcc==-1){
//do nothing
}
alert(hasSubAcc);