我有一张桌子,它有class="priority-table"。我有以下CSS用于替代行颜色和悬停颜色。

.priority-table tr td{
  white-space:nowrap;
}
.priority-table tr:hover{
  background-color: #E6E6FA;
}

.priority-table tr:hover:nth-child(even) {
  background-color: #E6E6FA;
}

.priority-table tr:nth-child(even) {
  background-color: #ffffff;
}

.highlight{
  background-color: red;
}


我想在单击时将行标记为红色,所以我添加了此jQuery

$(".priority-table tr:odd").click(function() {
  console.log('first');
  $(this).toggleClass("highlight");
});

$(".priority-table tr:even").click(function() {
  console.log('second');
  $(this).toggleClass("highlight");
});

$(".priority-table tr").click(function() {
  $(this).toggleClass("highlight");
});


这仅将偶数列标记为红色。但我想保留所有单击的列标记为红色。我怎样才能做到这一点?

最佳答案

以下CSS在偶数行上覆盖了您的红色悬停,因为它更具体。

.priority-table tr:nth-child(even) {
    background-color: #ffffff;
}


解决此问题的一种方法是,将重要属性添加到突出显示类中,例如

.highlight{
  background-color: red !important;
}


或更妙的是,添加此附加的类选择器,以使您拥有更特定版本的.highlight

.priority-table tr:nth-child(even).highlight{
  background-color: red !important;
}


最后,您可以删除“ .priority-table tr:nth-​​child(even)”类(如果不需要)。

示例:http://codepen.io/JasonGraham/pen/MeWLbO

09-25 16:20