首页 > Web开发 > 详细

浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法

时间:2015-08-13 11:59:23      阅读:459      评论:0      收藏:0      [点我收藏+]

再一次FUCK JS  屌语法 擦你妹

定义一个全局全量,例如:var i=0;
然后调用jquery的一个函数
 $.get(url, function(data) {
i=9;
})
alert(i);
得到的是0而不是9.

   

   var i=0;
        $.ajax({
           url:"test.html",
           success:function(){
                 i = 9;
           },
           async: false
        });
        alert(i)

 

Js代码
  1. $.ajaxSettings.async = false;   

 

就可以啦

 

例如:

Js代码
  1. function xxx(){
  2. var result = ""; 
  3. $.ajaxSettings.async = false; 
  4. $.getJSON("url",{id:11},function(data){  
  5.      result = data.res; 
  6. });  
  7. return result;  
  8. }  

 如果不加上主句:

Js代码
  1. $.ajaxSettings.async = false;  

 result是没有返回值的,因为在还没有执行异步请求操作之前就已经执行return了。

浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法

原文:http://www.cnblogs.com/subtract/p/4726598.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!