詳解閉包解決jQuery中AJAX的外部變量問(wèn)題
詳解閉包解決jQuery中AJAX的外部變量問(wèn)題
在AJAX中,我們經(jīng)常都要使用外部變量,經(jīng)常會(huì)多次使用,如下代碼
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),但是實(shí)際上三次都是alert(4)
這均是由于AJAX異步導(dǎo)致的問(wèn)題,設(shè)置同步(async: false,)就可以解決這個(gè)問(wèn)題,但是隨之而來(lái)的是,效率減低很多。這時(shí)可以輕松使用閉包解決問(wèn)題:
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))); } }
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- javascript,jquery閉包概念分析
- jQuery命名空間與閉包用法示例
- jquery和js實(shí)現(xiàn)對(duì)div的隱藏和顯示方法
- JQuery顯示、隱藏div的幾種方法簡(jiǎn)明總結(jié)
- JQuery實(shí)現(xiàn)點(diǎn)擊div以外的位置隱藏該div窗口
- JQuery浮動(dòng)DIV提示信息并自動(dòng)隱藏的代碼
- jquery顯示和隱藏div特效實(shí)例
- JQuery DIV 動(dòng)態(tài)隱藏和顯示的方法
- jquery div提示框漸隱彈出與隱藏效果
- jQuery基于閉包實(shí)現(xiàn)的顯示與隱藏div功能示例
相關(guān)文章
ASP.NET中AJAX 調(diào)用實(shí)例代碼
最近在ASP.NET中做了一個(gè)AJAX調(diào)用 : Client端先從ASP.NET Server后臺(tái)取到一個(gè)頁(yè)面模板,然后在頁(yè)面初始化時(shí)再?gòu)腟erver中取一些相關(guān)數(shù)據(jù)以實(shí)現(xiàn)頁(yè)面模板的動(dòng)態(tài)顯示2012-05-05jQuery EasyUI API 中文文檔 - Spinner微調(diào)器使用
jQuery EasyUI API 中文文檔 - Spinner微調(diào)器使用,需要的朋友可以參考下。2011-10-10Jquery通過(guò)Ajax方式來(lái)提交Form表單的具體實(shí)現(xiàn)
提交Form表單的方法有很多,在本文為大家介紹下Jquery通過(guò)Ajax方式是如何提交Form表單的2013-11-11jQuery實(shí)現(xiàn)HTML表格單元格的合并功能
這篇文章主要介紹了jQuery實(shí)現(xiàn)HTML表格單元格的合并功能,可合并指定行與指定列上的單元格,涉及jQuery針對(duì)表格元素屬性的動(dòng)態(tài)操作技巧,需要的朋友可以參考下2016-04-04jquery-file-upload 文件上傳帶進(jìn)度條效果
這篇文章主要介紹了jquery-file-upload 文件上傳帶進(jìn)度條效果,代碼分為html部分css部分和js部分,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-11-11