Javascript 一次打开一个div,然后关闭jquery中打开的所有其他div
正在尝试实现显示/隐藏描述框 如果用户单击第一个showDesc链接,则会打开其描述框。 然后,如果用户单击第二个showDesc链接,它将打开其说明框,并应关闭所有其他打开的说明框 请点击下面的链接: 下面是我的代码:Javascript 一次打开一个div,然后关闭jquery中打开的所有其他div,javascript,jquery,html,css,Javascript,Jquery,Html,Css,正在尝试实现显示/隐藏描述框 如果用户单击第一个showDesc链接,则会打开其描述框。 然后,如果用户单击第二个showDesc链接,它将打开其说明框,并应关闭所有其他打开的说明框 请点击下面的链接: 下面是我的代码: $(“.showDesc”)。单击(函数(){ $(“.descContainer”).toggleClass(“显示”); }); .descContainer{ 位置:相对位置; 填充:24px40px24px24px; 边框顶部:1px实心rgba(0,0,0,08)
$(“.showDesc”)。单击(函数(){
$(“.descContainer”).toggleClass(“显示”);
});代码>
.descContainer{
位置:相对位置;
填充:24px40px24px24px;
边框顶部:1px实心rgba(0,0,0,08);
显示:无;
线高:24px;
背景色:#fdfd;
}
.descContainer.show{
位置:相对位置;
填充:24px40px24px24px;
边框顶部:1px实心rgba(0,0,0,08);
显示:块;
线高:24px;
背景色:#fdfd;
}
标题
-
显示描述
描述文本
标题
-
显示描述
描述文本
您的问题是因为您正在同时更改所有.descContainer
元素上的类,而不仅仅是与单击的.showDesc
相关的类
要解决此问题,需要使用DOM遍历来获取最近的('.feedContainer)
然后next()
来获取要切换的元素,如下所示:
$(.showDesc”)。单击(函数(){
var$target=$(this).closest('.feedContainer').next(.descContainer”).toggleClass(“show”);
$(“.descContainer”).not($target).removeClass('show');//隐藏其他打开的元素
});代码>
.descContainer{
位置:相对位置;
填充:24px40px24px24px;
边框顶部:1px实心rgba(0,0,0,08);
显示:无;
线高:24px;
背景色:#fdfd;
}
.descContainer.show{
位置:相对位置;
填充:24px40px24px24px;
边框顶部:1px实心rgba(0,0,0,08);
显示:块;
线高:24px;
背景色:#fdfd;
}
标题
-
显示描述
描述文本
标题
-
显示描述
描述文本
您的问题是因为您正在同时更改所有.descContainer
元素上的类,而不仅仅是与单击的.showDesc
相关的类
要解决此问题,需要使用DOM遍历来获取最近的('.feedContainer)
然后next()
来获取要切换的元素,如下所示:
$(.showDesc”)。单击(函数(){
var$target=$(this).closest('.feedContainer').next(.descContainer”).toggleClass(“show”);
$(“.descContainer”).not($target).removeClass('show');//隐藏其他打开的元素
});代码>
.descContainer{
位置:相对位置;
填充:24px40px24px24px;
边框顶部:1px实心rgba(0,0,0,08);
显示:无;
线高:24px;
背景色:#fdfd;
}
.descContainer.show{
位置:相对位置;
填充:24px40px24px24px;
边框顶部:1px实心rgba(0,0,0,08);
显示:块;
线高:24px;
背景色:#fdfd;
}
标题
-
显示描述
描述文本
标题
-
显示描述
描述文本
这不需要jQuery,甚至不需要javascript。使用:target CSS伪类在HTML+上设置ID和内部链接就可以了
.descContainer{
位置:相对位置;
填充:24px40px24px24px;
边框顶部:1px实心rgba(0,0,0,08);
线高:24px;
显示:无;
}
.descContainer:目标{
显示:块;
}
描述文本
描述文本
这不需要jQuery,甚至不需要javascript。使用:target CSS伪类在HTML+上设置ID和内部链接就可以了
.descContainer{
位置:相对位置;
填充:24px40px24px24px;
边框顶部:1px实心rgba(0,0,0,08);
线高:24px;
显示:无;
}
.descContainer:目标{
显示:块;
}
描述文本
描述文本
这就像手风琴。这个怎么样?这就像手风琴。这个怎么样?