单击按钮时阻止表tr可单击行

时间:2016-07-20 16:08:50

标签: javascript jquery

我想在我的代码中提供一些帮助:

我需要点击tr,但是当点击按钮时我需要打开一个模态...我不需要模态代码,我唯一的问题是如何在点击按钮时阻止该功能?

Bellow我的代码工作得很好......



		$(".datagrid").delegate('tbody tr', 'click', function(e) {
		    e.preventDefault();
          
          console.log('OK.. I need this click in TR');
          console.log('But, how to prevent if click comes the button???');
          
          });

.table-hover tbody tr:hover td, .table-hover tbody tr:hover th {
  background-color: #c5dffa;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<table id="table" class="table table-hover dataTable datagrid" cellspacing="0">
  <thead >
    <tr>
      <th></th>
      <th>BLABLA</th>
      <th>BLEBLE</th>
      <th>BLIBLI</th>
    </tr>
  </thead>
  <tbody>
  <tr class="clickable-row">
    <td>
      <div class="dropdown">
      <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" >
        button
      </button>
      </div>
    </td>
    <td>blablablablabla</td>
    <td>blebleblebleble</td>
    <td>bliblibliblibli</td>
  </tr>
</tbody>
</table>
    
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:2)

检查e.target.tagName

$(".datagrid").delegate('tbody tr', 'click', function(e) {
  e.preventDefault();

  if (e.target.tagName == 'BUTTON') {
    console.log('The button was clicked');
  } else {
    console.log('The TR was clicked (not the button)');
  }

});
.table-hover tbody tr:hover td,
.table-hover tbody tr:hover th {
  background-color: #c5dffa;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<table id="table" class="table table-hover dataTable datagrid" cellspacing="0">
  <thead>
    <tr>
      <th></th>
      <th>BLABLA</th>
      <th>BLEBLE</th>
      <th>BLIBLI</th>
    </tr>
  </thead>
  <tbody>
    <tr class="clickable-row">
      <td>
        <div class="dropdown">
          <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true">
            button
          </button>
        </div>
      </td>
      <td>blablablablabla</td>
      <td>blebleblebleble</td>
      <td>bliblibliblibli</td>
    </tr>
  </tbody>
</table>