IE8在此循环的最后一个语句的字符9处给出invalid argument
错误(字符9是图标变量的第一个字母。):
var JOB_STATUS_ICON_DISTANCE = 125;
var JOB_STATUS_ICON = {};
var center = parseInt($('#job-status-window').css('width')) / 2;
var jobStatusIcons = ['A', 'B', 'C', 'D', 'E'];
for (var i=0; i<jobStatusIcons.length; i++) {
var name = jobStatusIcons[i];
var icon = document.getElementById('job-status-' + name);
var width = icon.naturalWidth;
var centerPoint = (center-(width/2));
JOB_STATUS_ICON[name+'Center'] = centerPoint;
JOB_STATUS_ICON[name+'Left'] = centerPoint - JOB_STATUS_ICON_DISTANCE;
JOB_STATUS_ICON[name+'Right'] = centerPoint + JOB_STATUS_ICON_DISTANCE;
JOB_STATUS_ICON[name] = $('#job-status-'+name);
icon.style.left = JOB_STATUS_ICON[name+'Right'] + 'px'; // error here...
}
谁能告诉我为什么?这在现代浏览器中工作正常。
仅针对某些情况,这是用于监控正在进行的作业的状态(5个步骤)。我在JOB_STATUS_ICONS中跟踪5张图像的位置。每个图像从右侧滑动到中心位置,在作业的该部分处理时停留在那里,然后向左滑动。上面的代码只是用于确定每个图像的左,中,右位置的一些优化(它们是所有不同的宽度)。
循环中导致问题的最后一行是设置图像的初始位置。