首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

jquery回传函数传值有关问题,求,分不够再加

2012-02-19 
jquery回传函数传值问题,求高手进,分不够再加。function test{var ilat0, ilng0$.get(Read.asp,functi

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

热点排行