jquery回传函数传值问题,求高手进,分不够再加。
function test
{
var ilat=0, ilng=0;
$.get("Read.asp",function(data){
//data的傎是“100,200”
tmp = data.toString().split(",");
ilat = parseFloat(tmp[0]);
ilng = parseFloat(tmp[1]);
});
alert(ilng+ilat);//此处外部引用,值还为0;
}
---->在这个外部值不是300,还是0呀,郁闷,传不出来呀。怎么办,求高手解释!
[解决办法]
function(data){
//data的傎是“100,200”
tmp = data.toString().split(",");
ilat = parseFloat(tmp[0]);
ilng = parseFloat(tmp[1]);
}
这儿是定义函数,又不是调用函数,你在这儿怎么可能把参数传进去?
很简单这样改:
function test
{
var ilat=0, ilng=0;
$.get("Read.asp",function(){fn(data);});
function fn(data){
//data的傎是“100,200”
tmp = data.toString().split(",");
ilat = parseFloat(tmp[0]);
ilng = parseFloat(tmp[1]);
}
alert(ilng+ilat);}
[解决办法]
ajax是异步的,alert时值还没传回来。
[解决办法]
async 设置为false 同步
[解决办法]
5楼正解! ajax异步的话,写在回调函数里就行了。
function test(){ var ilat=0, ilng=0; //代码1 $.get("Read.asp",function(data){ //代码3 //data的傎是“100,200” tmp = data.toString().split(","); ilat = parseFloat(tmp[0]); ilng = parseFloat(tmp[1]); //在此处接着做其它事情 alert(ilng+ilat); }); //代码2:此处执行时,代码3还未被执行 //alert(ilng+ilat);}
[解决办法]
改成$.ajax,配置为同步的
function test{var ilat=0, ilng=0;$.ajax({type:'GET',url:'Read.asp',cache:false,async:false//////////,success:function(data){ //data的傎是“100,200” tmp = data.toString().split(","); ilat = parseFloat(tmp[0]); ilng = parseFloat(tmp[1]);}});/*$.get("Read.asp",function(data){ //data的傎是“100,200” tmp = data.toString().split(","); ilat = parseFloat(tmp[0]); ilng = parseFloat(tmp[1]);});*/ alert(ilng+ilat);//此处外部引用,值还为0;}