Jquery在具有相同类的其他div中选择单击的div

Jquery在具有相同类的其他div中选择单击的div,jquery,css,hidden,addclass,slidetoggle,Jquery,Css,Hidden,Addclass,Slidetoggle,基本上,我有一个gallerygrid,当单击每个单独的块时,它会显示一个隐藏的div。我有这个功能。我也有一个颜色覆盖在每个块上,在悬停时消失。我还希望隐藏div父块不具有覆盖-当隐藏div可见时。目前,它删除了所有父块的覆盖,应该只有父块显示隐藏的div。查看小提琴以进一步了解 $(".glry-itm").click(function() { $(".hidden").slideUp(); if ($(".hidden").is(":visible")) {

基本上,我有一个gallerygrid,当单击每个单独的块时,它会显示一个隐藏的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");
   }

});
使用$this.addClassOn;而不是$.glry-itm.addClassOn

$.glry-itm.addClassOn;将向所有glry itm元素添加类。如果您在click hander中使用这个,它将把类添加到当前单击的元素中

在CSS中,删除:before from.Off:

如下:

此外,您可以将这一行从if/then/else中剔除,只需在if:

  $(this).next(".hidden").slideToggle(300);
我添加了$.glry-itm.addClassOn;我用$this代替了.glry itm


你需要这个吗?关闭,但这仅影响单击的第一个。我需要它来影响\n单击哪个块。Ie你的解决方案是第一块没有颜色,但它可以是任何隐藏的div显示。我需要的集团和隐藏的div是平行的,即如果第三块点击它不应该是橙色的,第三个隐藏的div显示。我需要它在每次单击不同的块时进行更改。这很有意义,并清理了我的代码,但事实并非如此。关闭/打开功能正常工作。当隐藏的div可见时,parent.glry itm应处于禁用状态。
  $(this).next(".hidden").slideToggle(300);
 $(".glry-itm").click(function() {
    $(".glry-itm").addClass("On");
    $(".hidden").slideUp();
    $(this).next(".hidden").slideToggle(300);
    if ($(".hidden:visible")) {
        $(this).removeClass("On");
        $(this).addClass("Off");
    } else {
        $(this).removeClass("Off");
        $(this).addClass("On");
    }
});