Javascript 从div的.click()中排除复选框

Javascript 从div的.click()中排除复选框,javascript,jquery,Javascript,Jquery,我正试图通过使用jquery点击一个div来激活它。但是在div中,有一个复选框。我希望每当我单击div中除复选框之外的任何内容时,div都处于活动状态。我已经这样做了,但复选框现在不响应单击事件(即当我单击它时,它没有被选中/取消选中) 使用 防止事件在DOM树中冒泡,防止任何父处理程序收到事件通知 使用 防止事件在DOM树中冒泡,防止任何父处理程序收到事件通知 您必须防止事件传播,当您返回false时,它会阻止事件传播,但也会阻止选中/取消选中复选框的单击事件的默认操作 因此,相反,在事件

我正试图通过使用jquery点击一个div来激活它。但是在div中,有一个复选框。我希望每当我单击div中除复选框之外的任何内容时,div都处于活动状态。我已经这样做了,但复选框现在不响应单击事件(即当我单击它时,它没有被选中/取消选中)

使用

防止事件在DOM树中冒泡,防止任何父处理程序收到事件通知

使用

防止事件在DOM树中冒泡,防止任何父处理程序收到事件通知


您必须防止事件传播,当您
返回false时,它会阻止事件传播,但也会阻止选中/取消选中复选框的单击事件的默认操作

因此,相反,在事件对象中返回false调用

$(document).ready(function(){
    $('.c-video').click(function(){
        $('.c-video').removeClass('active');
        $(this).addClass('active');
    });
}).children().find('label').click(function(e){
    e.stopPropagation()
});

演示:

您必须阻止事件传播,当您
返回false时,它会阻止事件传播,但也会阻止选中/取消选中复选框的单击事件的默认操作

因此,相反,在事件对象中返回false调用

$(document).ready(function(){
    $('.c-video').click(function(){
        $('.c-video').removeClass('active');
        $(this).addClass('active');
    });
}).children().find('label').click(function(e){
    e.stopPropagation()
});

演示:

另一种方法是检查单击的事件目标:

var $cVideo = $('.c-video').on('click', function(e) {
    if (e.target.tagName != 'INPUT' && e.target.tagName != 'LABEL') {
        $cVideo.removeClass('active');
        $(this).addClass('active');
    }
});

另一种方法是检查单击的事件目标:

var $cVideo = $('.c-video').on('click', function(e) {
    if (e.target.tagName != 'INPUT' && e.target.tagName != 'LABEL') {
        $cVideo.removeClass('active');
        $(this).addClass('active');
    }
});

@melvindit欢迎乐于助人:)@melvindit欢迎乐于助人:)