Jquery在具有相同类的其他div中选择单击的div
基本上,我有一个gallerygrid,当单击每个单独的块时,它会显示一个隐藏的div。我有这个功能。我也有一个颜色覆盖在每个块上,在悬停时消失。我还希望隐藏div父块不具有覆盖-当隐藏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")) {
$(".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");
}
});