2012-01-21 47 views
0
function initDatabase() { 
try { 
    if (!window.openDatabase) { 
     alert('Local Databases are not supported by your browser. Please use a Webkit browser for this demo'); 
    } else { 
     var shortName = 'testdb'; 
     var version = '1.0'; 
     var displayName = 'test database'; 
     var maxSize = 3 * 1024 * 1024; // 3 MB 
     DB = openDatabase(shortName, version, displayName, maxSize); 
    } 
} catch(e) { 
    if (e == 2) { 
     // Version mismatch. 
     console.log("Invalid database version."); 
    } else { 
     console.log("Unknown error "+ e +"."); 
    } 
    return; 
} 
} 

function GetMe() { 
DB.transaction(
    function (transaction) { 

    //some other stuffs   
    var ff = 55; 


    } 
); 

return ff; 
} 

$(function() { 

    initDatabase(); 
    alert(GetMe()); 


}); 

你們幫我這個JavaScript變量DB.transaction

的GetMe函數返回「不確定」,而不是55,因爲變量「FF」是DB.transaction內。

如果變量「FF」是它完美但如果它裏面的DB.transaction

有人可以告訴我如何使它返回數據庫裏面的「FF」變量DB.transaction之外。交易

我試過return(DB.transaction.ff);和其他一些東西,但沒有什麼工作:(

請幫我

謝謝:)

回答

1

你回答了自己的問題:

如果變量「FF」是DB外.transaction它的作品完美,但不是如果它的DB內部。交易

變量ff必須在函數來正確範圍它。這就是要在這種情況下什麼,因爲你希望父函數返回ff

function GetMe() { 
    var ff; 
    a = function() { 
     ff = 55; 
    } 
    a() 
    return ff; // 55 
} 
+0

'函數GetMe(){ \t \t VAR FF; \t \t DB.transaction( \t \t 一個\t =函數(事務){ \t \t \t transaction.executeSql( 「選擇BILLID FROM票據ORDER BY BILLID DESC LIMIT 1;」,[],B =函數(交易,結果){ \t \t \t \t \t \t \t \t如果(results.rows.length> 0){ \t \t \t \t \t var row = results.rows。項(0); \t \t \t \t \t \t ff = row ['billid']; \t \t \t \t}否則{ \t \t \t \t \t \t \t \t \t \t FF = 0; \t \t \t \t \t \t \t \t \t} \t \t \t \t \t \t \t}的ErrorHandler); \t \t \t \t \t \t b(); \t \t \t \t \t} \t); \t \t a(); \t alert(ff); \t return ff; \t }' – Pushpak

+0

上面的代碼不工作可以幫助你 – Pushpak