jquery的AJAX方法的返回值为什么在IE下正常,而在FF和chrome下却返回空值? 代码如下:
<SCRIPT>functiongetTemp(link){alert('已经进入函数');vartemp=null;$(document).ready(function...
<SCRIPT>
function getTemp(link){
alert('已经进入函数');
var temp=null;
$(document).ready(function(){
$.ajax({
url:encodeURI(link),type:'GET',timeout:3000,dataType:'html',
error:function (){
temp=0;alert('temp :'+temp); return temp;
},
success:function (result){
temp=1;alert('temp :'+temp); return temp;
}
});
});
return temp;
}
function test(){
var temp=getTemp('/');
alert('temp is:'+temp);//为什么在IE下是1,而在ff和chrome下,temp的值是 null,而不是 1
return temp ;
}
</SCRIPT>
<input name='key' type='button' id='key' value='test' onclick='test();' />
我已经试过 jquery1.4.2 和1.6.2两个版本都不行,现在连IE也不行了, 展开
function getTemp(link){
alert('已经进入函数');
var temp=null;
$(document).ready(function(){
$.ajax({
url:encodeURI(link),type:'GET',timeout:3000,dataType:'html',
error:function (){
temp=0;alert('temp :'+temp); return temp;
},
success:function (result){
temp=1;alert('temp :'+temp); return temp;
}
});
});
return temp;
}
function test(){
var temp=getTemp('/');
alert('temp is:'+temp);//为什么在IE下是1,而在ff和chrome下,temp的值是 null,而不是 1
return temp ;
}
</SCRIPT>
<input name='key' type='button' id='key' value='test' onclick='test();' />
我已经试过 jquery1.4.2 和1.6.2两个版本都不行,现在连IE也不行了, 展开
3个回答
展开全部
一楼回答的正确.因为ajax默认是异步执行,ff和ie对ajax的执行也少有不同.这样的话,你的ajax还没有返回值,你的下一步alert已经执行了.当然就回去不到值了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-07-19
展开全部
我直接给你代码:
<SCRIPT>
function getTemp(link){
alert('已经进入函数');
var temp=null;
$.ajax({
url:encodeURI(link),type:'GET',timeout:3000,dataType:'html',
error:function (){
temp=0;
alert('temp :'+temp);
return temp;
},
success:function (result){
temp=1;alert('temp :'+temp);
return temp;
}
});
}
function test(){
var temp=getTemp('/');
alert('temp is:'+temp);//为什么在IE下是1,而在ff和chrome下,temp的值是 null,而不是 1
return temp ;
}
</SCRIPT>
<input name='key' type='button' id='key' value='test' onclick='test();' />
-----------------
这样就可以了。
也就是说,ajax 获取有一些慢!ajax 还没有获取到一部的值,你已经 return 了。
因为在 ff,chrome 中,ajax 是非常快的,而ie的效率、性能是极其低的,所以才会有这样的结果。
<SCRIPT>
function getTemp(link){
alert('已经进入函数');
var temp=null;
$.ajax({
url:encodeURI(link),type:'GET',timeout:3000,dataType:'html',
error:function (){
temp=0;
alert('temp :'+temp);
return temp;
},
success:function (result){
temp=1;alert('temp :'+temp);
return temp;
}
});
}
function test(){
var temp=getTemp('/');
alert('temp is:'+temp);//为什么在IE下是1,而在ff和chrome下,temp的值是 null,而不是 1
return temp ;
}
</SCRIPT>
<input name='key' type='button' id='key' value='test' onclick='test();' />
-----------------
这样就可以了。
也就是说,ajax 获取有一些慢!ajax 还没有获取到一部的值,你已经 return 了。
因为在 ff,chrome 中,ajax 是非常快的,而ie的效率、性能是极其低的,所以才会有这样的结果。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询