var eles = document.querySelectorAll('li.level a'),
i;
for (i = 0; i < eles.length, i++) {
eles[i].onclick = function() {
//...
};
}
现在,我想在鼠标悬停在文本上时,我想将手指指针改为crosshair.so我将以上代码改为:但它不起作用。
for (i = 0; i < eles.length, i++) {
eles[i].onclick = function() {
//...
};
eles[i].onmouseover = function(this) {
this.style.cursor="crosshair";
};
}
代码不起作用,如何纠正呢?谢谢
如果我只想用上面的代码通过javascript更改它,我该怎么办?
答案 0 :(得分:5)
如果你摆脱了争论,你会得到什么。由于this
是保留字,因此无法命名参数this
:
eles[i].onmouseover = function() {
this.style.cursor="crosshair";
};
但是,正如评论中已经说明的那样,更好的方法可能就是使用CSS:
li.level a:hover {
cursor: crosshair;
}
这是一个example of the CSS version。
附注
您的for
循环中也存在语法错误:
for (i = 0; i < eles.length, i++) // Wrong
for (i = 0; i < eles.length; i++) // Right (semi-colon, not comma)
通常更好的做法是使用addEventListener
而不是设置onsomevent
属性。您可以使用attachEvent
来支持旧版本的IE。
答案 1 :(得分:1)
代码中存在问题。从争论中删除它。
eles[i].onmouseover = function(/*this*/) {
this.style.cursor="crosshair";
};
}