2013-07-01 60 views
0

好吧我一直在爲此工作了幾天,並沒有找到任何幫助實例的例子。這看起來像是一個很常見的場景,所以也許我只是沒有找到正確的位置,或者解決方案比我想要的更復雜。用更多變量包裝單個變量回調函數javascript

我有一個預構建函數transaction,它接受回調函數queryDB。

db.transaction(queryDB, errorCB, successCB); 

按設計queryDB將有一個「tx」或數據庫事務對象來進行SQL調用。

function queryDB(tx){ 
    alert("transact"); 
    tx.executeSql("SELECT * FROM Sound", [], rqDB, errorCB); 
} 

現在我想通過一些額外的變量queryDB,特別SQLCMD和結果的回調函數。我已經嘗試了一些包裝queryDB的方式,一個我最喜歡的是這樣的:

db.transaction({ 
    onQueryDB: function(tx) { 
     queryDB(tx,sqlCmd,cb); 
    } 
}, errorCB, successCB); 

但這不叫我queryDB功能。這看起來像是一些應該在javascript中簡單而常見的東西。有人可以幫忙嗎?

回答

1

您傳遞的是對象而不是函數!改爲使用此代碼:

db.transaction(function(tx) { 
    queryDB(tx,sqlCmd,cb); 
}, errorCB, successCB); 
+0

哇,謝謝你的伎倆。而且......比我想象的要簡單,太棒了! 我確信我以前試過這個,...當時別的東西肯定已經被打破了,無論如何,感謝十億。 – HPP