2011-06-29 15 views
0

javascript内でDOMを使用して作成された 'tr'要素のスタイル設定に問題があります。 コードは次のとおりです。DOMを使用して作成された要素の設定のスタイルDOM

var tr = document.createElement("tr"); 
tr.onmouseover=function(){this.style.backgroundColor='#fbf9e0';}; 
        or 
tr.attachEvent('onmouseover',this.style.backgroundColor='#fbf9e0';); 

amnこのコードはIE-7にあります。その他の承認?

+2

[JavaScriptは動作のためのもので、プレゼンテーション用ではありません](http://code.google.com/edu/submissions/html-css-javascript/#introduction)。 CSSでスタイリングを行い、JavaScriptを使用してクラスを適用する必要があります。 –

+0

@WTP、私は大部分は同意します。しかし、私はそれをガイドラインとして扱い、厳しいルールではない。スクリプトの中でスタイルを調整するのがより理にかなっている(本当の、まれな)時間があります。 – Kon

+0

@Kon私はそれをガイドラインとして扱うので、私は「should」と言った。それが規則であれば、elsewiseをすることはできません。 –

答えて

0

attachEventを使用すると、複数のイベントをオブジェクトに関連付けることができます。

あなたがそれを設定すると、それが言及したコメントとして

0

をオーバーライドすることができonmouseoverを使用して、私は次のことをお勧めします:どちらの疑似クラス:hoverでグローバルスタイル、またはクラス固有のものを使用します。

tr:hover { 
    background-color: #fbf9e0; 
} 

/* or */ 
tr.someClass:hover { 
    background-color: #fbf9e0; 
} 

あなたがオブジェクトに追加することを確認し、そのクラスのルートを移動した場合:

<script> 
    tr.className = 'someClass'; 
</script> 
1

はjQueryのオプションですか?もしそうなら、これはかなり簡単になる:

$('tr').live('mouseover', function() { 
    $(this).css('background-color', '#fbf9e0'); 
}); 

これは、今DOMに存在するのかどうか、全てのTRにマウスオーバーイベントハンドラをアタッチしますか将来になります。

関連する問題