我对事件处理有疑问。
以下是示例:
<table>
<tr>
<td><input type='checkbox' id='xxx'/><td>
<td>a1</td>
<td>b1</td>
</tr>
<tr>
<td><input type='checkbox' id='xxx'/><td>
<td>a2</td>
<td>b2</td>
</tr>
<tr>
<td><input type='checkbox' id='xxx'/><td>
<td>a3</td>
<td>b3</td>
</tr>
....
</table>
我绑定 点击事件tr
标记,然后即使checkbox
被检查,它也会调用< strong>点击事件。
我除了这个怎么办?
在标签上绑定事件并不好。因为,td标签的数量不受限制。
感谢您的帮助。
答案 0 :(得分:1)
尝试
$('table').on('click', 'tr', function(){
//your code
})
$('table').on('click', 'input:checkbox', function(e){
e.stopPropagation();
})
演示:Fiddle
答案 1 :(得分:1)
在修复混乱的标签之后,我通常做的是:
$("tr").click(function(e) {
if(!$(e.target).is("input[type='checkbox']")) {
alert("No checkbox");
}
});
答案 2 :(得分:0)
在您的复选框中添加一个课程
<td><input type='checkbox' class="cb" id='xxx'/></td>
并使用e.target确定是否单击了复选框
$('tr').on('click',function(e){
var target=$(e.target);
if (target.hasClass('cb')){
return false;
}
});