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