Bootstrap 我可以排除TR点击事件中的按钮点击吗?

bkhjykvo  于 2023-06-20  发布在  Bootstrap
关注(0)|答案(3)|浏览(139)

我当前正在突出显示选中的表行,但在其中一个单元格中有一个按钮。当我单击按钮时,我将触发表行单击事件。有可能把两者分开吗?
我的两个电话现在看起来是这样的:

$('table.table-striped tbody tr').on('click', function () {
   $(this).find('td').toggleClass('row_highlight_css');
}); 

$(".email-user").click(function(e) {
    e.preventDefault();
    alert("Button Clicked");
});

我的HTML看起来像这样:

<table class="table table-bordered table-condensed table-striped">
  <thead>
    <tr>
      <th>col-1</th>
      <th>col-2</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Some Data</td>
      <td><button class="btn btn-mini btn-success email-user" id="email_123" type="button">Email User</button></td>
    </tr>
  </tbody>
</table>

有什么办法可以阻止按钮单击事件触发行单击事件吗?

8fq7wneg

8fq7wneg1#

使用stopPropagation

$(".email-user").click(function(e) {
    e.preventDefault();
    e.stopPropagation();
    alert("Button Clicked");
});

(See(What's the difference between event.stopPropagation and event.preventDefault?

yv5phkfx

yv5phkfx2#

我相信这是由事件冒泡引起的,请尝试在e.preventDefault();之后使用e.stopPropagation();

jyztefdp

jyztefdp3#

试试这个:

$('.table-striped').find('tr').on('click', function() {
    $(this).find('td').toggleClass('row_highlight_css');
});

$(".email-user").on('click', function(e) {
    e.preventDefault();
    e.stopPropagation();
});​

相关问题