jQuery将变量从一个函数传递到另一个函数

问题描述:

我需要创建一个变量并为该变量赋值以便稍后使用。为了节省复杂性并保持简单,我已经删除了也是var item2的其他部分的细节。在这个例子中的变量是mySeriesjQuery将变量从一个函数传递到另一个函数

var mySeries; 

$.getJSON("/_scripts/proxy.php", jsonObj, function(item) 
{ 
//Stuff happens here 

//NEED TO ASSIGN VALUE TO mySeries HERE: 
mySeries = item[0].series_id; 

//Stuff happens here 
}); 

//NEED TO USER mySeries VALUE HERE BUT IT IS NOT DEFINED 
var item2 = mySeries; 

使用Ajax,你需要使用回调,因为AJAX是asynchronous

$.getJSON("/_scripts/proxy.php", jsonObj, function(item) 
{ 
    var mySeries; 
    //Stuff happens here 

    //NEED TO ASSIGN VALUE TO mySeries HERE: 
    mySeries = item[0].series_id; 
    save_series(mySeries) 
    //Stuff happens here 
}); 

function save_series(s){ 

    var item2 = mySeries; 

    //...etc 
} 

mySeries获得分配的json的请求完成后,您ITEM2获取的之前分配它完成。

是的,我认为你需要一个item2的setter,因为它是在函数后面发生的,但是因为它是异步的,所以它不会有值直到它返回。如果您需要这种功能,您也可以使用.ajax()并将函数设置为同步。