jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – AJAX data.length到var无法正常工作大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
当我这样做:

$.ajax({
    url: purl,dataType: 'json',success: function(data){
        alert(data.length);
    }
});

我得到一个长度计数警报.

但是当我这样做的时候……

$.ajax({
    url: purl,success: function(data){
        items = data.length;
    }
});

alert(items);

将长度设置为全局变量,它不想玩得很好.思

解决方法

AJAX部分不会立即发生;在AJAX回调有时间设置项目的新值之前发生警报.

从jQuery 1.5开始,$.ajax返回一个实现Promises接口的对象.因此,您可以在执行代码之前随时确认promise已解决调用.done方法

​var promise = $.ajax({/*...*/});

promise.done(function(data){
    // Only works if the promise is resolved
});

例如,假设我们直接创建了一个延迟对象:

var promise = $.Deferred();

然后我们告诉它要等到五秒后才解决

setTimeout(function(){ 
    promise.resolve("Foo");
},5000);

但是我们绑定了一个处理程序来响应文档对象的点击:

$(document).on("click",function () {
    promise.done(function(data){
        alert("Data is " + data);
    });
});

请注意,我们将警报放在匿名函数中,并将其传递给promise.done,以便在解析promise之后执行.

这会构建一个队列,直到该promise被解决.如果我在前五秒内单击四次,则不会发生任何事情,但一旦该承诺结算,我将看到一个一个出现四个警告框.

现在承诺得到解决,任何进一步的点击(在5秒等待之后)将立即采取行动.

演示:http://jsfiddle.net/w7swE/1/

大佬总结

以上是大佬教程为你收集整理的jquery – AJAX data.length到var无法正常工作全部内容,希望文章能够帮你解决jquery – AJAX data.length到var无法正常工作所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。