javascript不是我的强项,我找到了一个完全按我想要的方式设计的导航脚本(下面的Jsfiddle),但是我无法让它与IE8一起工作(有史以来最好的浏览器 sarcasm )。
请帮助!
window.onload = function () {
var fine = [36, 34, 34, 34];
var mitms = document.getElementsByClassName('mitm');
var l0 = (mitms[0].offsetLeft + fine[0]);
document.getElementById("nav_arrow").style.marginLeft = l0 + "px";
for (var i = 0; i < mitms.length; i++) {
mitms[i].fine = fine[i];
mitms[i].onclick = function() {
arr(this);
var tmp = document.getElementsByClassName('mitm');
}
}
};
function arr(el) {
var mitms = document.getElementsByClassName('mitm');
var l = el.offsetLeft + el.fine;
document.getElementById("nav_arrow").style.marginLeft = l + "px";
}
答案 0 :(得分:0)
您不应将default
用作变量名称,因为它是reserved。
请改用其他名称。
来自documentation(7.6.1.1关键字),
以下令牌是ECMAScript关键字,不能在ECMAScript程序中用作标识符:
打破, 做, 的instanceof, 类型, 案件 其他, 新, VAR, 抓住, 最后, 返回, 无效, 继续, 对于, 开关, 而, 调试器, 功能, 这个, 用, 默认下, 如果, 扔, 删除, 在, 尝试
编辑:
正如@CrazyTrain所说,document.getElementsByClassName
不受支持。你可以用这样的垫片替换它:
function getElementsByClassName(needle) {
var my_array = document.getElementsByTagName("*");
var retvalue = new Array();
var i;
var j;
for (i=0,j=0;i<my_array.length;i++) {
var c = " " + my_array[i].className + " ";
if (c.indexOf(" " + needle + " ") != -1) retvalue[j++] = my_array[i];
}
return retvalue;
}
你会这样称呼:
var mitms = getElementsByClassName('mitm');