我用这个函数使我的表行可以点击
$("#grid tbody tr").click(function () {
var $checkbox = $(this).find(':checkbox');
$checkbox.attr('checked', !$checkbox.attr('checked'));
});
它工作得很好,但是当我自己尝试单击复选框时,它不起作用。我应该怎么做才能让它们都工作呢?
发布于 2011-04-18 18:16:34
使用单个事件处理程序:
$("#grid tbody tr").click(function(e) {
if (e.target.type == "checkbox") {
// stop the bubbling to prevent firing the row's click event
e.stopPropagation();
} else {
var $checkbox = $(this).find(':checkbox');
$checkbox.attr('checked', !$checkbox.attr('checked'));
}
});
发布于 2011-04-18 18:15:25
$('#grid tbody tr input:checkbox').click(function(e) {
e.stopPropagation();
});
则点击复选框不会触发tr上的点击事件。
发布于 2015-09-17 09:38:31
这些答案都工作得很好,但我被困了很长一段时间,试图弄清楚为什么我不能让它们工作。我正在动态生成我的表行,它们还不存在于DOM中。出于这个原因,所有的解决方案都不起作用。
为我解决这个问题的是使用on()方法。
$('body').on('click', '#grid tbody tr', function (e) {
https://stackoverflow.com/questions/5701312
复制相似问题