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 に答える