CSSで設定された行ストライピングのテーブルがあり、jQueryでもクリック機能があります。私のコード:CSS nth-childがjQueryをオーバーライドしています。ハイライト表示
$(document).on('click', '.datarow', function() {
$(".datarow").removeClass("highlight");
$(this).addClass("highlight");
// other code for row select
});
#datatable tr:nth-child(odd) {
background-color: #fff;
cursor: pointer;
}
#datatable tr:nth-child(even) {
background-color: #fafafa;
cursor: pointer;
}
#datatable tr:hover {
background-color: #ddd;
}
#datatable tr .highlight {
background-color: #fbbc05;
}
<table id="datatable">
<tr class="datarow">...</tr>
...
</table>
jQueryの行のハイライトは動作しません。
しかし、CSSのnth-childコードを削除すると、jQueryが期待通りに機能します。
したがって、CSSのnth-childハイライトはクリックされたときに1つの行を強調表示するjQueryをオーバーライドしています。
どうすれば一緒に働くことができますか?
私の ".highlight"を "#datatable tr .highlight"にしても、まだ運がないので、この回答をhow can I use jquery addClass when selecting a tr to override a nth-child class on a parent div?にしてみました。
'#datatable tr .highlight'-は、クラス' highlight'を持つ 'tr'要素を選択します。 – CBroe