jquery - 表格行在悬停时突出显示并在单击时更改颜色

标签 jquery html css

我正在尝试使用 jquery 来处理这两种情况。基本上,我想要的功能是当您将鼠标悬停在表格行上时突出显示表格行,但是当您单击该特定行的某一行时,表格行会变成比悬停突出显示更深的颜色。这是我目前拥有的代码

$("tr").not(':first').hover(
  function() {
    $(this).css("background", "#FFEFC6");
  },
  function() {
    $(this).css("background", "");
  }
);

$("tr").click(function(e) {
  $(this).css("background-color", "#ffd659");
});

我遇到的问题是,当我单击一行时,它会变成较暗的颜色,但如果我将鼠标悬停在远离该行的位置,它将恢复为透明背景。

最佳答案

使用 CSS,无需使用 JavaScript 进行悬停 因此只需单击即可切换类

$("tbody").on("click", "tr", function(e) {     
  $(this)
     .toggleClass("selected")
     .siblings(".selected")
         .removeClass("selected");
});
table { width: 50% }
tbody tr:hover.selected td,
tbody tr:hover td {
  background-color: #FFEFC6;
  cursor: pointer;
}
tbody tr.selected td {
  background-color: #ffd659;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <thead>
    <tr>
      <th>a</th>
      <th>b</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>1</td>
    </tr>
    <tr>
      <td>2</td>
      <td>2</td>
    </tr>
    <tr>
      <td>3</td>
      <td>3</td>
    </tr>
    <tr>
      <td>4</td>
      <td>4</td>
    </tr>
  </tbody>
</table>

关于jquery - 表格行在悬停时突出显示并在单击时更改颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31542120/

相关文章:

jquery-ui - jquery 自定义事件附加到 .show 和 .hide

html - 如何最好地在内容宽度受限的 div 上实现 100% 背景色?

css - HTML:不需要的空格

javascript - 在子 div 外部单击时隐藏 Div onClick |响应式JS

html - 使用 CSS 在文本输入中设置光标样式

javascript - 从更改事件中触发更改事件

javascript - 如何在 IE8 中调试堆栈溢出错误

jquery - FullCalendar:在 drop 函数中设置事件结束

javascript - javascript 中带有事件类的缩略图

jQuery Draggable() 和键盘控制