我处理与下面的代码的点击。
表输入
<table>
<tr>
<td>
<input type="checkbox" />
</td>
</tr>
</table>
点击处理程序
$('table tr').click(function(){
alert('clicked');
});
http://jsfiddle.net/n96eW/
它的工作很好,但如果我在TD复选框,单击时的操控它。
有没有一种方法来处理TR的点击,但在子元素中不触发?
http://jsfiddle.net/n96eW/1/
在你的复选框添加另一个事件处理程序stopPropagation:
$('table tr').click(function(){
alert('clicked');
});
$('table tr input').click(function(e) {
e.stopPropagation();
});
您可以检查event.target
来过滤事件:
$('table tr').click(function(e){
if(e.target.tagName.toLowerCase() != "input") {
alert('clicked');
}
});
你也可以使用
$("tr").on('click',function() {
if (!$(event.target).is('input'))
alert('clicked');
});