1

外部ページをロードしたい (クエリ モバイルから ajax を使用せずに)。問題は、リンク タグのクリックによってアクティブ化される関数を使用すると、この関数でデータベースへの INSERT があり、リンクがスクリプトがDBに書き込む前に続きます..

コードの一部を次に示します。

$('#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する非同期呼び出しはレコードが実行されず、../client/consultClients.htmlページがロードされることです

仕事が終わった後、どうすればリンクをたどることができますか??

4

2 に答える 2

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;

}

あなたのサポートのためのTy Tim...

于 2012-12-04T16:59:50.283 に答える
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;
});

于 2012-12-04T09:15:16.017 に答える