国产探花免费观看_亚洲丰满少妇自慰呻吟_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)));      }    }

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万宁市| 石柱| 延边| 周口市| 遂溪县| 永嘉县| 葫芦岛市| 神农架林区| 永胜县| 湖北省| 营山县| 和硕县| 肥东县| 大丰市| 东港市| 滦南县| 哈巴河县| 宁晋县| 云龙县| 宽城| 象山县| 永德县| 大连市| 剑阁县| 屏东市| 宣城市| 建德市| 甘德县| 溧水县| 上思县| 涪陵区| 霸州市| 东台市| 东乡族自治县| 平利县| 开封县| 博乐市| 华池县| 屯门区| 威远县| 长沙市|