javascript - 用jquery选择表格行,而且点击按钮时也选择行,我该如何防止这种情况?
问题描述
当您单击表格行时,它会添加一个更改其外观以反映其被选中的类。
$('#my_table tbody').on( 'click', 'tr', function () {
$(this).toggleClass('selected');
} );
但是,我在列中也有一些按钮,可让您执行特定于该行的操作:
Item Amount Action
--------------------------------
Apple 10 [Buy] [Delete]
Banana 5 [Buy] [Delete]
Orange 14 [Buy] [Delete]
当我单击单个按钮之一时,它还会触发要添加的表格行“.selected”类,但我不希望在单击按钮时发生这种情况。
解决方案
您可以Event.stopPropagation()
在按钮单击时使用:
$('#my_table tbody').on( 'click', 'tr', function () {
$(this).toggleClass('selected');
} );
$('#my_table tbody').on( 'click', 'button', function (e) {
e.stopPropagation();
});
.selected{
background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="my_table">
<thead>
<th>Item</th>
<th>Amount</th>
<th>Action</th>
</thead>
<tbody>
<tr>
<td>Apple</td>
<td>10</td>
<td><button>[Buy]</button><button>[Delete]</button></td>
</tr>
<tr>
<td>Banana</td>
<td>5</td>
<td><button>[Buy]</button><button>[Delete]</button></td>
</tr>
<tr>
<td>Orange</td>
<td>14</td>
<td><button>[Buy]</button><button>[Delete]</button></td>
</tr>
</tbody>
</table>
推荐阅读
- windows - 为什么 docker-compose 以一种语法而不是另一种语法创建源目录?
- java - 我在发布模式下运行我的 Flutter 应用程序时遇到问题 - android
- java - 从另一个 dockerized java 应用程序调用 dockerized python 脚本?
- firebase - 尝试使用 API 密钥使应用程序安全,但未使用
- ios - 如何构建适用于 iOS 和 macOS 的混合包?
- ruby-on-rails - 无法使用 JWT 身份验证在 Rails 后端创建用户对象
- node.js - Websocket 刷新令牌方法
- css - VIsual Studio 代码 - Live Sass 编译器未在单独的 css 文件夹中生成 .css 文件
- django - 在 Django 中将秒转换为分钟时出错
- batch-file - 如何找到具有特定字符串的变量?