使用表格行内的输入复选框,我可以将单击事件添加到行中并且仍然能够单击输入
with an input checkbox inside a table row, can i add click event to row and still be able to click input
我有一个表格:
<table>
<tr>
<td>Something</td>
<td>Something Else</td>
<td><input type='checkbox' value='clickme' id='yes'></td>
</tr>
对于用户,如果他们单击该行,他们将获得有关该行的更多数据,如果他们单击该复选框,则会显示一些其他选项。 如何在 jQuery 中侦听每个事件。 我的问题是单击复选框显然触发了行单击事件
$('tr').click(function(){
alert('you clicked the row');
});
$('#yes').change(function(){
alert('you clicked the checkbox');
});
如果元素是动态创建的,这是否有效:
$('#someTableId').on('click','#yes',function(e){
alert($(this).attr('id'));
e.stopPropagation();
});
更新:第 2 部分的答案是肯定的。
您可以使用 event.stopPropagation() 试试这个:-
$('#yes').click(function(e){
e.stopPropagation();
});
演示
使用 event.stopPropagation 来阻止事件冒泡,您需要绑定新的点击事件复选框。
防止事件在 DOM 树中冒泡,防止任何 父处理程序不会收到事件通知。
现场演示
$('#yes').click(function(event){
event.stopPropagation();
});
另一种替代方法是为checkbox
添加附加单击处理程序,即在checkbox
事件源时跳过 tr 单击处理程序的处理。
现场演示
$('tr').click(function(event){
if(event.target.id === 'yes') return;
alert('you clicked the row');
});
use event.stopPropagation();
定义
防止事件在 DOM 树中冒泡,防止任何父处理程序收到事件通知。
相关文章:
- 单击jquery清除输入值
- 使用jquery在单击时在单元格中输入值
- 主体单击删除功能上的输入框宽度
- Javascript:;单击“;以及“;输入键“;
- 单击鼠标,用MySQL数据填充html表单输入字段
- 使用 jQuery,当我在输入框外部单击时,如何更改输入元素的值
- 使用jQuery切换来显示内容,但防止在用户单击输入元素时关闭
- 单击其他元素或鼠标向上时隐藏输入框,但保留一次焦点
- 防止在输入字段上单击事件
- 如何在单击时从输入字段中删除最后一个字符
- 通过单击链接(兄弟姐妹?)从无线电输入中获取id
- 单击下拉菜单时,将文本粘贴到输入框中
- 当用户单击按钮(在光标位置)时,在输入字段中添加一个文本字符串
- 单击表单1中的按钮:更改表单2中隐藏输入的值(纯javascript)
- 调用时未输入角度 ng 单击函数
- 在 javascript 事件单击后清空输入
- 如何在输入单击时出现键盘时使标题粘在顶部 (iPhone)
- 加载页面后未触发文件输入单击事件
- 如何在输入更改事件之前获得Bootstrap预先输入单击结果
- 无法识别输入单击