phonegap jquerymobile - 在完成异步操作时加载页面

时间:2012-12-04 08:59:02

标签: jquery cordova jquery-mobile asynchronous

我想加载一个外部页面(所以不使用来自查询移动设备的ajax),问题是当我使用通过点击链接标签激活的功能时,在这个功能中我有一个INSERT进入数据库,在脚本写入数据库之前遵循链接..

这是代码的一部分:

$('#aggiungiClienteRubrica').click(function() {

                               db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
                               db.transaction(function(tx){
                                              var sql = 'INSERT INTO CLIENTI (nome, cognome) VALUES ("'+$('#nome').val()+'", "'+$('#cognome').val()+'")';
                                              tx.executeSql(sql)}, errorCB);
                               });

在html文件中我只有一个这样的标签:

  

<a id="aggiungiClienteRubrica" href="../client/consultClients.html" data-role="button" data-theme="b" rel="external">Add client</a>

所以问题是,我可以执行javascript,但是执行INSERT到db的异步调用记录没有被执行并且../client/consultClients.html页面被加载

如何在作业完成后按照链接进行操作?

2 个答案:

答案 0 :(得分:0)

试试这个:


$('#aggiungiClienteRubrica').click(function(e) {
    e.preventDefault(); // will stop default link action

    // capture the link url
    var url = $(this).attr('href');

    // your DB stuff here, wait for completion
    // (I'm not familiar with local DB so don't know that part)

    // use this if you managed to do the above synchronously
    // or in a 'success' callback
    window.location.href = url;
});

答案 1 :(得分:0)

好的,让它工作!!!

这是如何:

$('#aggiungiClienteRubrica').click(function(e) {
                               var myVar = click(e);
                               myVar;
});

然后点击功能定义如下:

function click(e){

db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
e.preventDefault();
db.transaction(function(tx){
               var sql = 'INSERT INTO CLIENTI (nome, cognome) VALUES ("'+$('#nome').val()+'", "'+$('#cognome').val()+'")';
               tx.executeSql(sql)}, errorCB, successCreation);
}

然后,定义了回调函数successCreation:

function successCreation(){
var href = $('#aggiungiClienteRubrica').attr('href');
window.location.href = href;

}
蒂姆蒂姆的支持......