读书人

jquery回传函数传值有关问题求分不

发布时间: 2012-02-19 19:43:38 作者: rapoo

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;} 

读书人网 >JavaScript

热点推荐