问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

使用jquery的getJSON方法改变了js的执行顺序,代码如下 var h = g...

发布网友 发布时间:2022-04-25 15:44

我来回答

3个回答

热心网友 时间:2022-04-23 01:18

ajax请求默认是异步的。

var h = g.creatDIV(e.url); console.log(h);


你g.creatDIV方法中。返回的li永远是空字符串。因为.getJSON正在执行的过程中,你的li就已经返回了。


解决方法两种,一种是使用同步请求,即ajax的执行会阻塞代码的继续执行。

$.ajax({
   type: "POST",
   url: t,
   data: "",
   async: false,
   dataType:"json",
   success: function(data){
     li+=y.title;
   }
});


这样之后,后面的return li;

会等待请求结束,然后才会返回li


另一种解决方案是把你后续要执行的代码放到回调函数中执行。


creatDIV:function(t,cb){
            var li='';
            $.getJSON(t,function(data){      //t是传入的url地址
                $.each(data,function(x,y){
                    li+=y.title;//title是json字段
                    cb(li);
                });  
            });
        }
var h = g.creatDIV(e.url,function(li){
 alert("调用结束@! li的值是:" + li);
});

热心网友 时间:2022-04-23 02:36

你的 return 是写在 ajax 外面的,当函数执行,ajax 发出请求尚未结束的时候就已经 return 了。

cainiaokan 是正解,不过这正方法和直接调用 ajax 没有什么区别,都要等 ajax 结束才能操作。

async:false 也是一种办法,但 jQuery 官方非常不建议这样做,因为 async:false 会在 ajax 同时锁定浏览器,一切活动必须等待 ajax 结束才能继续。

Setting this option to false (and thus making the call no longer asynchronous) is strongly discouraged, as it can cause the browser to become unresponsive.追问return li放到each里还是会出现同样的问题

热心网友 时间:2022-04-23 04:11

$.ajaxSetup({
async:false

})
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
联想Z470AM I5处理器与I3 联想ideapad z470 独显默认设置是什么 联想Z470 I5处理器 GT520M的显卡跟普通的GT520M显卡有什么区别 性能怎 ... 我新买了一台联想z470 i3-2310 但是朋友说显卡不太好!! 我玩天龙八部... 联想的z470笔记本 上面 的独显GT520M 能不能 更换 或者是升级阿? ...我的是双显卡的 z470- i5 显卡是 gt520m 能换吗 vivo手机耳机麦克风说话声音小 耳机通话声音小是怎么回事 为什么我手机耳机的麦克风声音很小怎么调 求:7个字的情侣游戏名,纯汉字,有诗意的(不要古诗)。不带任何符号或英文... 在word里输入一篇文章,想查询下有没有错别字,应该怎么查询? 请教一下凉拌菠菜金针菇怎样做才好吃? OTG转接头能连2.4Ghz无线手柄吗? 手柄是北通阿修罗的,手机支持OTG。 jquery ajax 怎样跨域获取 json 数据 我使用WORD不知道怎么用哪个错别字检查功能 OTG线的接法 jQuery的getJSON事件 关于红曲米降血脂怎么吃才好吃呢? jquery获取json数据 Word中如何识别错别字 jquery.$ajax,get,post,getjson之间有什么区别啊,详细说下呗_百度知... 红曲米怎么吃好? 北通潘多拉2282的无线手柄能连接手机吗?自带一个插电脑的接收器。连接手机是不是要otg转接线啊? 在word里面怎样设置才能显示错别字? 使用jquery的$.getJSON方法解析下述json里的数据失败,想输出的是distric... 游戏手柄无线连接器是不是就是otg? 怎么能在WORD里面快速找到自己打错的错别字 红曲米怎么吃? jquery getJSON方法返回值 OTG连接什么意思? 红曲米怎么做菜 小米2s OTG功能可以连接北通阿修罗TE无线手柄吗? Jquery 的getJSON到底是什么机制 为什么有的时候能够进这个方法有的时候... jquery中怎么获取json的key值? 金针菇的做法,凉拌菠菜金针菇怎么做好吃 jQuery的getjson问题用getjson获取一个文本文件 代码和症状如下_百度知 ... 菇菠菜的做法,凉拌金针菇菠菜怎么做好吃 红曲米怎样吃降血脂 菠菜金针菇的做法,凉拌菠菜金针菇怎么做好 红曲米怎样吃降血脂比较好? 凉拌菠菜金针菇怎么做好吃 菠菜配金针菇吃,既减肥又美味,怎么做呢? 金针菇和菠菜能一起凉拌吗 纪梵希37怎么是玫红色? 口红是每个女人必备的化妆品,哪个色号最受你喜爱? 纪梵希小羊皮中哪个色号涂起来有初恋感? 请问一下,旧手机的微信聊天记录可以复制到新手机上吗?如何操作呢?谢谢... 你感觉冷白皮的女生,比较适合涂什么颜色的口红? 奥黛丽赫本在《蒂凡尼的早餐》中口红的颜色? 作为口红一哥,李佳琪都带火了哪些口红色号?