【发布时间】:2017-02-22 19:35:22
【问题描述】:
我在我的 jquery 数据表中添加了一个新行,其中包含一些事件的 html 内容(复选框输入):
$("#btn").on( 'click', function (){
$('#mytable').DataTable().row.add([data[0],data[1],"<td><input type=\"checkbox\" value=\"\" /></td>"]).draw();
}
现在,当我从动态创建的行中单击“复选框”时,整行与复选框一起被触发。因此,以下甚至没有被触发:
$('input[type=checkbox]').on( 'click', function (e){
e.stopPropagation();
});
但又会触发这个事件:
$("#mytable tbody").on( 'click', 'tr', function (){
$(this).addClass('selected').siblings().removeClass('selected');
....
}
知道为什么会这样吗?
【问题讨论】:
-
尝试在你的最后一个 sn-p 上做一个
.not,因为我相信它会在元素内的 anything 被点击时被触发。$("#mytable tbody").not('input[type="checkbox"]').on...。 (作为评论发布,因为我相信可能会有更好的答案。请参阅下面的Rory McCrossan's answer。) -
如果你想要所有行上的复选框通常最好在插件中使用渲染回调来生成它们
标签: javascript jquery html checkbox datatables