码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2015-08-13 12:00:09      阅读:110      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!