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异步的话,写在回调函数里就行了。
JScript code
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,配置为同步的
JScript code
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;
}