详解闭包解决jQuery中AJAX的外部变量问题
发布时间 - 2026-01-10 23:13:36 点击率:次详解闭包解决jQuery中AJAX的外部变量问题

在AJAX中,我们经常都要使用外部变量,经常会多次使用,如下代码
function getCarInfo(){
for(var i=0;i<4;i++){
var carId = $("#carList0"+i+" #carId").val();
var request = {
city: city,
carId: carId
};
$.ajax({
url:"enquiry",
type:'post',
data:request,
//async: false,
success:function(data){
//alert(data);
var strArr = data.split("#");
$("#carList0"+i+" #distributorId").val(strArr[0]);
$("#carList0"+i+" #font16").html(strArr[strArr.length-1]);
}
});
}
}
我期待的是按顺序alert(1) alert(2) alert(3) alert(4),但是实际上三次都是alert(4)
这均是由于AJAX异步导致的问题,设置同步(async: false,)就可以解决这个问题,但是随之而来的是,效率减低很多。这时可以轻松使用闭包解决问题:
function getCarInfo(){
for(var i=0;i<4;i++){
((function(i){
var carId = $("#carList0"+i+" #carId").val();
var request = {
city: city,
carId: carId
};
$.ajax({
url:"enquiry",
type:'post',
data:request,
//async: false,
success:function(data){
//alert(data);
var strArr = data.split("#");
$("#carList0"+i+" #distributorId").val(strArr[0]);
$("#carList0"+i+" #font16").html(strArr[strArr.length-1]);
}
});
}(i)));
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# 闭包解决jQuery中AJAX的外部变量问题
# jQuery中AJAX的外部变量使用闭包解决
# javascript
# jquery闭包概念分析
# jQuery命名空间与闭包用法示例
# jquery和js实现对div的隐藏和显示方法
# JQuery显示、隐藏div的几种方法简明总结
# JQuery实现点击div以外的位置隐藏该div窗口
# JQuery浮动DIV提示信息并自动隐藏的代码
# jquery显示和隐藏div特效实例
# JQuery DIV 动态隐藏和显示的方法
# jquery div提示框渐隐弹出与隐藏效果
# jQuery基于闭包实现的显示与隐藏div功能示例
# 的是
# 都是
# 都要
# 希望能
# 解决问题
# 谢谢大家
# 均是由
# 随之而来
# 经常会
# 解决这个问题
# 就可以
# lt
# getCarInfo
# var
# carId
# val
# request
# function
# AJAX
# jQuery
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
实例解析angularjs的filter过滤器
Mybatis 中的insertOrUpdate操作
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
高端建站三要素:定制模板、企业官网与响应式设计优化
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
nodejs redis 发布订阅机制封装实现方法及实例代码
如何在阿里云ECS服务器部署织梦CMS网站?
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
黑客如何通过漏洞一步步攻陷网站服务器?
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
Laravel如何使用Blade组件和插槽?(Component代码示例)
如何在七牛云存储上搭建网站并设置自定义域名?
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
如何在Tomcat中配置并部署网站项目?
python中快速进行多个字符替换的方法小结
如何用腾讯建站主机快速创建免费网站?
如何快速辨别茅台真假?关键步骤解析
微信小程序 input输入框控件详解及实例(多种示例)
Laravel如何使用Collections进行数据处理?(实用方法示例)
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
千库网官网入口推荐 千库网设计创意平台入口
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
如何快速搭建FTP站点实现文件共享?
Laravel Session怎么存储_Laravel Session驱动配置详解
如何挑选高效建站主机与优质域名?
Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询
详解CentOS6.5 安装 MySQL5.1.71的方法
Linux系统命令中tree命令详解
Swift中swift中的switch 语句
香港服务器网站卡顿?如何解决网络延迟与负载问题?
js实现获取鼠标当前的位置
Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
JavaScript如何实现音频处理_Web Audio API如何工作?
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
如何获取上海专业网站定制建站电话?
如何用景安虚拟主机手机版绑定域名建站?
敲碗10年!Mac系列传将迎来「触控与联网」双革新
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
文字头像制作网站推荐软件,醒图能自动配文字吗?
图册素材网站设计制作软件,图册的导出方式有几种?
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
如何在建站之星绑定自定义域名?
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
米侠浏览器网页图片不显示怎么办 米侠图片加载修复

