首页 > 应用开发 > > js代码压缩后运行异常
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/ ,如需转载,请注明出处,否则将追究法律责任。