0

コードのタイプミス。修正が見つかりました

.tblmain td は、DOM レベルのために tr の影響をオーバーライドします。代わりに .tblmain tr を使用する必要があります。誰かが回答として提出したい場合は、受け入れます。ありがとうございました!

ホバー!important時に a の背景色が変更されることを確認するために、CSS で識別子を使用しています。tr

のCSStr

.tblmain td {
    background-color: white;
}

次に、onmouseoverイベントを通じて、以下のようにjavascriptを使用します

onmouseover='$(this).addClass("hover")'

ホバーCSSは以下です

.hover {
    cursor: pointer;
    background-color: #15b6b8 !important;
}

ホバーすると背景はまだ白ですが、trクラスが削除されている場合、ホバーは期待どおりに機能します。このような状況ではハッキーと見なされることを知っているので、主な色をホバークラスにするための!important使用を含むがこれに限定されない、あらゆる提案を受け入れます。!important

前もって感謝します!

4

1 に答える 1

1

クラスを追加しているのに、削除していないということですか? toggleClass代わりに使用してください。

さらに、使用onmouseoverするとコードの分離が不十分になります。これを試して:

$('.tblmain').on('mouseover mouseout', 'tr', function(e) {
    $(this).toggleClass('hover');
});

tdただし、代わりに子の背景色を切り替える必要がある場合があります。それらに背景色が適用されている場合は、 のスタイルをオーバーライドできますtr

$('.tblmain').on('mouseover mouseout', 'tr', function(e) {
    $(this).find('td').toggleClass('hover');
});
于 2013-02-22T16:04:46.380 に答える