gpt4 book ai didi

javascript - 单击复选框时会触发两次 jQuery 单击事件

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:24:25 25 4
gpt4 key购买 nike

我正在玩弄DataTables,我有一个这样的表:

<table id='dt'>
<thead><!-- Some Header --></thead>
<tbody>
<tr data-lineid=1>
<td><input type='checkbox' class='checked_entry' id='checked_1'></td>
<td>Column 1</td>
<td>Column 2</td>
</tr>
<!-- Rest of the table -->
</tbody>
</table>

我想要做的是能够点击行中的任何地方,它会选中这一行的复选框:

$('#dt tbody').on('click', 'tr', function() {
var id = $(this).data('lineid');
if ($('#checked_'+id).prop('checked')) {
$('#checked_'+id).prop('checked', false);
} else {
$('#checked_'+id).prop('checked', true);
}
});

这工作正常,除了现在,当我单击复选框本身时,它似乎触发了复选框单击事件加上 tr 上绑定(bind)的事件>.

我试过类似的东西:

$('#dt tbody').on('click', 'tr :not(input)', function() { ... });

但这似乎行不通。

有人可以给我一些提示吗?

谢谢!

最佳答案

每当用户点击复选框时,尝试退出 tr click 事件,

$('#dt tbody').on('click', 'tr', function(e) {
if($(e.target).is('input')) { return; }
var id = $(this).data('lineid');
if ($('#checked_'+id).prop('checked')) {
$('#checked_'+id).prop('checked', false);
// ... and some other stuff
} else {
$('#checked_'+id).prop('checked', true);
// ... and some other stuff
}
});

关于javascript - 单击复选框时会触发两次 jQuery 单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24302061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com