0

我有关于事件处理的问题。

这是示例:

<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选中,它也称为点击事件。

我除了这个怎么办?

在标签上绑定事件是不好的。因为,td 标签的数量不受限制。

谢谢你的帮助。

4

3 回答 3

1

在修复混乱的标签后,我通常会做的是:

$("tr").click(function(e) {
    if(!$(e.target).is("input[type='checkbox']")) {
        alert("No checkbox");
    }
});
于 2013-09-08T15:47:25.887 回答
1

尝试

$('table').on('click', 'tr', function(){
    //your code
})

$('table').on('click', 'input:checkbox', function(e){
    e.stopPropagation();
})

演示:小提琴

于 2013-09-08T15:37:50.840 回答
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;
   }
});
于 2013-09-08T15:47:10.347 回答