0

このコードは機能しています。

tx.executeSql('INSERT INTO Routes (id_object) VALUES (4)'); 
tx.executeSql("SELECT * FROM Routes", [], function (tx, result) 
{ alert(result.rows.item(0)['id_object']) },
function (tx, error) {alert('Неудача');} )};

しかし、これは機能しません。クリックイベントを追加しました。

 <button id = "click2">Добавить в БД</button>

function querySuccess(tx, results) 
{
 $('#click2').click(addObject);

function addObject(tt){

tt.executeSql('INSERT INTO Routes (id_object) VALUES (4)'); 
tt.executeSql("SELECT * FROM Routes", [], 
function (tt, result) { alert(result.rows.item(0)['id_object']) },
function (tt, error) {alert('Неудача');} )
};

何故ですか?

4

1 に答える 1

2

tx関数が戻った直後に、トランザクションは閉じられquerySuccessます。click有効なトランザクションがない場合、ハンドラーはかなり後で実行されます。

clickハンドラー内で新しいトランザクションを作成する必要があります。

于 2013-05-14T19:30:10.300 に答える