动态创建复选框单击事件,选择整行,而不仅仅是jquery数据表中的复选框.为什么呢?
Dynamically created checkbox click event selecting the whole row instead of only the check box in a jquery datatable. Why is that?
我已经添加了一个新的行在我的jquery数据表与html内容(复选框输入)的一些事件:
$("#btn").on( 'click', function (){
$('#mytable').DataTable().row.add([data[0],data[1],"<td><input type='"checkbox'" value='"'" /></td>"]).draw();
}
现在,当我单击动态创建行的"复选框"时,整个行将随着复选框一起被触发。因此,下面的even不会被触发:
$('input[type=checkbox]').on( 'click', function (e){
e.stopPropagation();
});
但是反过来触发这个事件:
$("#mytable tbody").on( 'click', 'tr', function (){
$(this).addClass('selected').siblings().removeClass('selected');
....
}
知道为什么会这样吗?
你不能停止在委托事件处理程序上的传播,因为它在被处理之前已经通过DOM传播了。
或者,您可以在tr
单击处理程序中检查event.target
,如果它是被单击的复选框,则不做任何工作:
$("#mytable tbody").on('click', 'tr', function(e) {
if (e.target.tagName.toLowerCase() == 'input')
return;
$(this).addClass('selected').siblings().removeClass('selected');
})
相关文章:
- 如何发布单选和复选框选择?表单由php和js处理
- 如何通过jquery/ajax将复选框数据作为数组发送到php脚本
- AngularJS-通过ajax提交带有复选框的表单
- 如何使用复选框显示表单的更多选项并更改表单的操作属性
- Javascript:检测复选框不适用于只有 1 个复选框的表单.使用 2 个或更多
- 如何使用 javascript 将复选框数据传递到文本区域
- 显示或隐藏基于复选框数据的 HTML 列表,Laravel 4
- 在选择带有选择和复选框的表单的复制完整字段集上
- 如何保存和访问复选框数据 HTML
- 如何使用jQuery验证插件根据输入类型=文本/单选/复选框验证表单
- Jquery 按多个复选框筛选表行
- jQuery - 复选框数据发布到 php
- 如何根据在角度 js 中选中的复选框获取表行值
- 使用复选框将表单提交到同一页面,而无需重新加载页面
- 使用复选框提交表单
- 使用复选框提交表单
- 如何根据选中的复选框更改表单操作 URL
- 使用jquery向选中复选框的表中添加数据
- 在同一页面上的表中显示复选框和表单数据
- 用复选框构建表,并使用Knockout.js绑定到数据