我的问题是我已经有一些'突出显示'(意味着他们有自己的背景颜色来突出显示它们)我的表格中的单元格,当我使用代码改变整个颜色时,它们不会改变它们的背景颜色当鼠标在它们上面移动时排。
覆盖一行只会改变未突出显示的单元格的背景颜色。
如何解决此问题,以便整行改变背景颜色?
我有这个HTML表格:
$(window).load(function() {
$('#infotable tr').hover(function() {
$(this).addClass('hover');
}, function() {
$(this).removeClass('hover');
});
});
#infotable td {
padding:0.7em;
border:#969696 1px solid;
}
.highlight {
background:#DAFFD6;
}
.hover {
background:yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<table>
<thead>
<tr>
<th></th>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
</tr>
</thead>
<tbody id="infotable">
<tr>
<td>Row #1</td>
<td>889 kg</td>
<td class="highlight">151 kg</td>
<td>192 kg</td>
</tr>
<tr>
<td>Row #2</td>
<td>784 kg</td>
<td>15 kg</td>
<td class="highlight">64 kg</td>
</tr>
</tbody>
</table>
答案 0 :(得分:6)
您可以单独使用CSS实现此目的。您只需要使:hover
规则比td.highlight
更具体。试试这个:
#infotable tr:hover td,
#infotable tr:hover td.highlight
{
background:yellow;
}
答案 1 :(得分:1)
通过仅更改javascript,Addclass将鼠标悬停在所有td
上,而不是tr
。
$('#infotable tr').hover(function()
{
$(this).find('td').addClass('hover');
}, function()
{
$(this).find('td').removeClass('hover');
});
答案 2 :(得分:1)
只需从悬停中继承该样式,请检查此Fiddle
.hover, .hover .highlight
{
background:yellow;
}
答案 3 :(得分:0)
在css中尝试这个
#infotable tr td:hover
{
background:yellow;
}