检查单击了哪个子元素

时间:2015-06-06 02:13:02

标签: jquery

我想验证点击了哪个“.quality”元素

$("#content").on('click', ".delinquent > .quality", function(){
    selected = this;
    $(".quality", $(selected).parent()).each(function(){
        if (selected == this){
            $(this).toggleClass("selected", true);
            $(this).toggleClass("unselected", false);
        }else{
            $(this).toggleClass("selected", false);
            $(this).toggleClass("unselected", true);
        }
    });
})

这是我尝试使用的代码,但它似乎不起作用,因为所有.quality跨度都有.selected类。

2 个答案:

答案 0 :(得分:0)

Event Delegation在Javascript中是一件很棒的事情。

事件对象包含target,它是触发事件的元素。您可以像这样访问它:

$("#content").on('click', ".delinquent > .quality", function (e) {
    console.log(e.target);
});

答案 1 :(得分:0)

我想我明白你要做什么。您希望在单击的质量项目上应用选定的类,并在其余质量项目上应用未选择的类。假设所有.quality元素都是彼此的兄弟元素,您可以像这样简化代码。

$("#content").on('click', ".delinquent > .quality", function(){
    $(this)
      //Add selected class to the current item clicked
      .removeClass('unselected').addClass('selected')
      //Find all the siblings and add unselected class
      .siblings().removeClass('selected').addClass('unselected);
})