基本上,我有一个gallery(grid),当单击每个单独的块时,它将显示一个隐藏的div。我正在使用该功能。我还在每个块上有一个颜色叠加,该颜色叠加在悬停时消失。我还希望隐藏的div父块不具有覆盖层-当隐藏的div可见时。目前,它删除了所有父块的叠加层,并且应该仅是显示隐藏div的父块。查看小提琴以进一步了解。

$(".glry-itm").click(function() {
    $(".hidden").slideUp();
    if ($(".hidden").is(":visible")) {
        $(this).next(".hidden").slideToggle(300);
        $(".glry-itm").addClass("On");

    } else{

        $(this).next(".hidden").slideToggle(300);
        $(".glry-itm").addClass("Off");
   }

});


JsFiddle Here

最佳答案

使用$(this).addClass("On");代替$(".glry-itm").addClass("On");

$(".glry-itm").addClass("On");将类添加到所有glry-itm元素。如果您在点击处理程序内使用this,它将将该类添加到当前点击的元素中

Fiddle

09-11 20:48