ITPub博客

首页 > 应用开发 > > js代码压缩后运行异常

js代码压缩后运行异常

作者:deeply 时间:2019-08-16 09:38:24 0 删除 编辑
function InitAllParameter() {
    var _ProductControl = $('#sProduct');
    var _Level1Control = $('#sLevel1');
    var _Level2Control = $('#sLevel2');
    var _Level3Control = $('#sLevel3');

    $.ajax({
        type: "get",
        async: false,
        url: "/OA/Ashx/Search.ashx?type=InitAllParameter",
        contentType: "application/json; charset=utf-8",
        cache: false,
        error: errorFunction,
        success: function (data) {
            var json = eval(data); //数组
            var contentmsg = "<option value=''>Select</option>";
            _ProductControl.html(contentmsg);
            _Level1Control.html(contentmsg);
            _Level2Control.html(contentmsg);
            _Level3Control.html(contentmsg);
            $.each(json.LEProductDt, function (index, item) {
                  //....
            });

            var basicLength = json.LEBaiscLevelDt.length;
            $('#knowledge-basic').html('');
            var basicContent = "";
            var arrayObj = new Array();

            for (var j = 0; j < Math.ceil(basicLength / 4); j++) {
                for (var i = 0; i < 4; i++) {
                    //此处代码省略
                }
            }
        }
    });
};

这段代码在压缩前可以正常运行,但是压缩后就出现异常。

查看压缩后的代码,发现

var _Level2Control = $('#sLevel2');

变成了

i=$("#sLevel2")

这个i变量会和success 方法里的i冲突,压缩后success里也会重新定义i

for (var i = 0; i < 4; i++) {
                    //此处代码省略
                }

如果把var _ProductControl = $('#sProduct');

    var _Level1Control = $('#sLevel1');
    var _Level2Control = $('#sLevel2');
    var _Level3Control = $('#sLevel3');

定义移到success里定义就可以正常运行。

请问该如何避免这个问题?或者有其他更好的方式?

谢谢..


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1978/viewspace-3146508/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: .net反射问题
请登录后发表评论 登录
全部评论

注册时间:2008-05-30

  • 博文量
    215
  • 访问量
    24534