首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >可点击的行和复选框冲突

可点击的行和复选框冲突
EN

Stack Overflow用户
提问于 2011-04-18 18:07:19
回答 4查看 10.5K关注 0票数 21

我用这个函数使我的表行可以点击

代码语言:javascript
复制
    $("#grid tbody tr").click(function () {
    var $checkbox = $(this).find(':checkbox');
    $checkbox.attr('checked', !$checkbox.attr('checked'));
});

它工作得很好,但是当我自己尝试单击复选框时,它不起作用。我应该怎么做才能让它们都工作呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-04-18 18:16:34

使用单个事件处理程序:

代码语言:javascript
复制
$("#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'));
    }
});

http://jsfiddle.net/karim79/UX2Fv/

票数 34
EN

Stack Overflow用户

发布于 2011-04-18 18:15:25

代码语言:javascript
复制
$('#grid tbody tr input:checkbox').click(function(e) {
    e.stopPropagation();
});

则点击复选框不会触发tr上的点击事件。

票数 5
EN

Stack Overflow用户

发布于 2015-09-17 09:38:31

这些答案都工作得很好,但我被困了很长一段时间,试图弄清楚为什么我不能让它们工作。我正在动态生成我的表行,它们还不存在于DOM中。出于这个原因,所有的解决方案都不起作用。

为我解决这个问题的是使用on()方法。

代码语言:javascript
复制
$('body').on('click', '#grid tbody  tr', function (e) {
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5701312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档