国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

詳解閉包解決jQuery中AJAX的外部變量問題

2019-11-19 17:27:03
字體:
來源:轉載
供稿:網友

詳解閉包解決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)));      }    }

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汕头市| 延寿县| 饶阳县| 内江市| 江城| 石河子市| 泗洪县| 莱阳市| 中牟县| 大丰市| 汾阳市| 青海省| 常德市| 克东县| 新宁县| 建昌县| 新竹县| 沾化县| 泰宁县| 墨玉县| 分宜县| 沙田区| 清徐县| 瑞昌市| 潮州市| 汉源县| 周至县| 左贡县| 武威市| 酒泉市| 道孚县| 平阴县| 江西省| 扶余县| 永年县| 普定县| 棋牌| 安阳县| 江源县| 监利县| 景东|