<tbody>
<tr>
<td><input type="checkbox"/></td>
<td>453</td>
<td>Nick James</td>
<td>12/9/2016</td>
</tr>
</tbody>
JS
$('body').on('click','#myTable tbody',function(e){
alert('do something');
});
我的表格行中有复选框,如何在上面的点击事件中委托它?当我点击复选框时,我不希望发生该事件。
答案 0 :(得分:1)
您可以检查目标是否为复选框,并阻止进一步执行:
$(document).ready(function(){
$('body').on('click','#myTable tbody',function(e){
if($(e.target).is(':checkbox'))
{
return;
}
alert('do something');
});
})
选中此Fiddle
答案 1 :(得分:1)
仅在目标类型不是复选框时才执行此功能
$(document).ready(function(){
$('body').on('click','#myTable tbody',function(e){
if(e.target.type!='checkbox')
alert('do something');
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id='myTable'>
<tbody>
<tr>
<td><input type="checkbox"/></td>
<td>453</td>
<td>Nick James</td>
<td>12/9/2016</td>
</tr>
</tbody>
</table>
&#13;
答案 2 :(得分:0)
使用停止 event.stopPropagation() 可防止点击内部元素在父母身上冒泡。
$('body').on('click','#myTable tbody input[type="checkbox"]',function(event){
event.stopPropagation();
});
$('body').on('click','#myTable tbody',function(e){
alert('do something');
});
现在只有当您点击表格内的任何位置时,警报才会出现,而不是input[type="checkbox"]
。
答案 3 :(得分:0)