アクションを実行するクリックイベントがテーブル行にあります。ただし、同じ行のボタンをクリックした場合、on-row-clickイベントを防止し、ボタンの機能を実行したいのですが、これを実現する方法がわかりません。
これを示すために、->フィドル<-を作成しました。テーブルの行をクリックするだけで、ボタンが表示されます。次に、ボタンをクリックします。ボタンをクリックしている間、row-click-eventが再度実行されたことがわかります。これを防ぐにはどうすればよいですか?
<table id="tab_open_deals" class="table table-condensed table-striped cb_table-hover">
<thead>
<tr>
<th>A</th>
<th>B</th>
<th>C</th>
</tr>
</thead>
<tbody id="search_result">
<tr>
<td><a class="btn my_btn hidden2" href="#">Button</a></td>
<td>39.90</td>
<td>29 Dec 2012</td>
</tr>
<tr>
<td><a class="btn my_btn hidden2" href="#">Button</a></td>
<td>1499.00</td>
<td>8 Jan 2013</td>
</tr>
</tbody>
</table>
CSS:
.hidden2{
display: none;
}
jquery:
$(document).ready(function() {
$('#tab_open_deals tbody tr').off('click').on('click', function() {
var row = $('<tr/>');
row.load('/echo/html/', {
html: '<td class="override" colspan="4"><table class="table-striped sub_table-hover"><thead><tr><th>Sub1</th><th>Sub2</th></tr></thead><tbody><tr><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td></tr></tbody></table></td>'
});
row.insertAfter($(this));
$(this).find(".my_btn").off('click').on('click', function(){ alert("clicked") })
$(this).find(".my_btn").show();
});
});