javascript - 单击时触发事件(复选框+标签除外)

标签 javascript jquery

我有一个表行,单击它会触发一个事件。行内有(未显示)复选框及其样式标签。

我想要的是阻止(我猜是 :not 或 .not() 但无法弄清楚)单击复选框/标签时的执行。

HTML:

<center>
<table>
    <tr class='pend'>
        <td><input type="checkbox" id="bb"/> <label for="bb">X</label></td>
        <td>&nbsp;</td>
        <td>some text</td>
    </tr>
</table>
</center>

CSS:

center {
margin-top:20px;
}

input[type=checkbox] + label {
    width:10px;
    height:10px;
    background-color:red;
}

input[type=checkbox] {
    display:none;
}

table tr {
height:40px;
    background-color:gray;
}

table td {
padding:5px;
}

JS:

$('.pend').on('click',function(){
    $(this).append('text');
    return false;
})

JSFIDDLE:http://jsfiddle.net/ySuGB/2/

最佳答案

您需要防止单击复选框/标签时发生事件冒泡。

见下文,

//                     V-- Is the TD containing the checkbox and the label.
$('.pend :checkbox').parent().on('click', function(event) {
    event.stopPropagation()
});

演示: http://jsfiddle.net/ySuGB/12/

关于javascript - 单击时触发事件(复选框+标签除外),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12432301/

相关文章:

javascript - 使用 javascript 将多个输入与一个输入进行比较

javascript - 如何向一个元素添加一个类并从所有兄弟元素中删除一个类

javascript - jQuery 表单验证。如何防止错误消息多次出现

php - 将 PHP 数组传递到 Javascript

javascript - 无法访问属性

javascript - jQuery - 选择器不工作 - 动态表单

javascript - 如何使用 jquery 启用/禁用 div 层

使用 Express 时未加载 Javascript(Angular)

javascript - 在 jQuery 中强制触发 domready?

php - trim() 没有捕获 AJAX 发布的数据值