1
var eles = document.querySelectorAll('li.level a'),
    i;

for (i = 0; i < eles.length, i++) {
  eles[i].onclick = function() {
    //...
  };

}

现在,我想当鼠标悬停在文本上时,我想将手指指针更改为十字准线。所以我将上面的代码设置为:但它不起作用。

for (i = 0; i < eles.length, i++) {
      eles[i].onclick = function() {
        //...
      };
eles[i].onmouseover = function(this) {
        this.style.cursor="crosshair";
      };

    }

代码不起作用,如何更正?谢谢你

如果我只想用上面的代码通过javascript更改它,我该怎么办?

4

2 回答 2

5

如果你摆脱争论,你所拥有的就会奏效。由于this是保留字,您不能命名参数this

eles[i].onmouseover = function() {
    this.style.cursor="crosshair";
};

这是一个工作示例

但是,正如评论中已经说明的那样,更好的方法可能是只使用 CSS:

li.level a:hover {
    cursor: crosshair;
}

这是CSS 版本的示例


旁注

  • 您的for循环中也有语法错误:

    for (i = 0; i < eles.length, i++) // Wrong
    for (i = 0; i < eles.length; i++) // Right (semi-colon, not comma)
    
  • addEventListener使用而不是设置onsomevent属性通常是更好的做法。您可以使用attachEventIE 来支持旧版本。

于 2012-09-26T08:02:34.823 回答
1

代码有问题。从争论中删除它。

eles[i].onmouseover = function(/*this*/) {
        this.style.cursor="crosshair";
      };

    }
于 2012-09-26T08:03:37.647 回答