addClass到子元素只点击父元素而不是子元素本身?

时间:2015-03-27 10:13:12

标签: jquery

我想在单击父元素的父元素的子元素中添加类。那不是那么令人兴奋......

$('.parent').click(function(){
    $(this).children().addClass('newClass');
});

但是,我不想在click子元素本身上向子元素添加'newClass'......这可能吗?

Exp:http://jsfiddle.net/qxz1bLt8/

提前致谢!

3 个答案:

答案 0 :(得分:0)

<击> 尝试在此上下文中使用多个选择器,

$(document).ready(function () {
    $('.parent,.parent >').click(function () {
        $(this).closest('.parent').children().addClass('newClass');
    });
});

DEMO

<击>

抱歉,我误解了这个问题,试着检查一下目标元素是否有班级孩子。如果没有将类添加到它。

$(document).ready(function () {
    $('.parent').click(function (e) {
        $(this).children().toggleClass('newClass', !$(e.target).hasClass(".child"));
    });
});

DEMO

答案 1 :(得分:0)

您可以使用活动的target属性。您可以获得有关被点击元素的信息:

$('.parent').click(function(event){
    if($(event.target).hasClass('parent')) {
        $(this).children().addClass('newClass');
    }        
});

答案 2 :(得分:0)

您可以使用.is()检查event.target是否不是child,然后添加课程。

  

event.target:发起事件的DOM元素。

使用

$('.parent').click(function (event) {
    if ($(event.target).is('.child') == false) {
        $(this).children().addClass('newClass');
    }
});

DEMO