Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 是否将类添加到子元素?是否只单击父元素而不单击子元素本身?_Jquery - Fatal编程技术网

Jquery 是否将类添加到子元素?是否只单击父元素而不单击子元素本身?

Jquery 是否将类添加到子元素?是否只单击父元素而不单击子元素本身?,jquery,Jquery,我想在单击“父元素”时将类添加到父元素的子元素。那不太令人兴奋 $('.parent').click(function(){ $(this).children().addClass('newClass'); }); 但是,我不想在单击子元素本身时将“newClass”添加到子元素中。。。可能吗 经验: 提前谢谢 尝试在此上下文中使用多个选择器 $(document).ready(function () { $('.parent,.parent >').click(fun

我想在单击“父元素”时将类添加到父元素的子元素。那不太令人兴奋

$('.parent').click(function(){
    $(this).children().addClass('newClass');
});
但是,我不想在单击子元素本身时将“newClass”添加到子元素中。。。可能吗

经验:

提前谢谢

尝试在此上下文中使用多个选择器

$(document).ready(function () {
    $('.parent,.parent >').click(function () {
        $(this).closest('.parent').children().addClass('newClass');
    });
});
抱歉,我误解了这个问题,请尝试检查目标元素是否有类子元素。如果没有,则将类添加到其中

$(document).ready(function () {
    $('.parent').click(function (e) {
        $(this).children().toggleClass('newClass', !$(e.target).hasClass(".child"));
    });
});
您可以使用事件的目标属性。因为您有关于单击的元素的信息:

$('.parent').click(function(event){
    if($(event.target).hasClass('parent')) {
        $(this).children().addClass('newClass');
    }        
});
您可以使用检查是否不是子类,然后添加类

event.target:启动事件的DOM元素

使用


谢谢你的回答,这很有效,但我认为我找到了一个更好的解决方案:e。stopPropagation@Mar,您也可以这样做,在这种情况下,您还需要将event与child绑定。没错..我不想使用event.target的原因是因为我曾经使用event.target遇到过ie问题。
$('.parent').click(function (event) {
    if ($(event.target).is('.child') == false) {
        $(this).children().addClass('newClass');
    }
});