Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击减号时如何折叠手风琴_Javascript_Jquery - Fatal编程技术网

Javascript 单击减号时如何折叠手风琴

Javascript 单击减号时如何折叠手风琴,javascript,jquery,Javascript,Jquery,我正在寻找关闭这个手风琴时,负是点击。手风琴处于展开状态时会出现减号。 当前,仅当单击另一个h3时,展开的窗口才会关闭 我尝试删除h3中打开的类,但它不起作用。如果你能保持动画的折叠效果,那就太好了 我试过了,但没用 $('.accordion > h3').on('click', function() { if($(this).hasClass("opened")) { $(this).removeClass('opened'); } “严格使用”;

我正在寻找关闭这个手风琴时,负是点击。手风琴处于展开状态时会出现减号。 当前,仅当单击另一个h3时,展开的窗口才会关闭

我尝试删除h3中打开的类,但它不起作用。如果你能保持动画的折叠效果,那就太好了

我试过了,但没用

$('.accordion > h3').on('click', function() {
    if($(this).hasClass("opened")) {
        $(this).removeClass('opened');
    }
“严格使用”;
变压头,/“.手风琴>h3”
内容,/“.accordion>div”
animateTime=500;
//при клике по заголовку...
$(“.accordion>h3”)。单击(函数(){
人头=$(本);
content=$(this.next(“div”);
//Пиаааааааааааааааа(а
$(“.accordion>h3”)。每个功能(索引){
设elem=$(this);
//Проверить, есть ли уже растрытые блоки. Если есть - закрыть.
如果(要素属性(“类”)=“打开”){
元素移除类(“打开”);
elem.next(“div”).stop().animate({
高度:“0”
},动画时间);
}
});
//“打开”的
head.addClass(“打开”);
//Плавно раскрыть блок с контентом
自动高度动画(内容、动画时间);
//Прокрутить страницу до раскрытого заголовка
//это нужно, чтобы контент не уплывал вверх, особенно на маленьких экранах и при большом объеме контента
setTimeout(函数(){
$(“html,body”).animate({
scrollTop:head.offset().top
},动画时间);
},动画时间);
/*****/
/*Фббббббб-动画高度:自动*/
函数autoHeightAnimate(元素、时间){
var curHeight=element.height(),//
autoHeight=element.css('height','auto').height();//Сааааааа
元素高度(curHeight);//Пццццццццц
元素。停止()。设置动画({
高度:自动高度
},时间);
}
});
.accordion>h3{
位置:相对位置;
字体大小:18px;高度:60px;边框半径:8px;
裕度:0 10px 0;
光标:指针;
线高:34px;
背景#f1f2f3;
颜色:#333;
字号:700;
}
.accordion>h3 div{padding:12px 0 0 70px!重要;}
.手风琴>h3::之前{
内容:“+”;边界半径:8px 0 8px;
显示:内联块;
位置:绝对位置;
宽度:50px;
身高:100%;
左:0;
背景:橙色;
颜色:#fff;
字体大小:粗体;
字号:2em;
文本对齐:居中;填充:12px 0!重要;
}
.accordion p{填充:8px 0 8px 0!重要;边距:0!重要;溢出:自动;}
.accordion>h3.opened{color:#333;}
.accordion>h3.opened::在{内容:'-';行高:110%;背景:#80cc26;}
.accordion>div{height:0;溢出:hidden;}

这是一个巨大的直径

胡说八道

易变易变易变易变易变易变易变易变易变易变易变易变易变易变易变易变易变易变易变易变易变易变易变易变易变易变易变易变易变易变
  • 维维拉前悬液
  • 维维拉前悬液
  • 维维拉前悬液
  • 维维拉前悬液

温和的阿利奎姆·埃塔姆·韦利特·斯克利斯


Commodo sed我认为有一个.toogle()方法可以使用。您可以找到docs

我认为您可以使用一个.toogle()方法。您可以找到文档

问题是:在代码中,您添加类(“打开”)
并运行
autoHeightAnimate
,每次单击
都会触发这些文档,因此需要
if
语句条件来执行相反的操作

[1]检查类的使用
.hasClass()
不是
.attr('class')

[2]无需在
中循环,更容易检查
是否已打开
类,然后执行操作,或者执行相反的操作。。请阅读下面代码中的注释

“严格使用”;
变压头,/“.手风琴>h3”
内容,/“.accordion>div”
animateTime=500;
//при клике по заголовку...
$(“.accordion>h3”)。单击(函数(){
var head=$(本);
var content=$(this.next(“div”);
var not_head=$(“.accordion>h3”)。not(head);
var not_content=$(“.accordion>h3”)。not(head)。next('div');
//Проверить, есть ли уже растрытые блоки. Если есть - закрыть.
if(head.hasClass(“opened”){//检查此h3 hasClass是否已打开
$(“.accordion>h3”).removeClass(“opened”);//从所有h3中删除已打开的类
$(“.accordion>h3”).next(“div”).stop().animate({//关闭所有下一个div
高度:“0”
},动画时间);
}否则{
not_head.removeClass('opened');//从h3中删除打开的类,但不删除单击的类
not_content.stop().animate({//关闭下一个div,但不关闭下一个单击的h3
高度:“0”
},动画时间);
head.addClass('opened');//addClass已向此h3打开
//Плавно раскрыть блок с контентом
autoHeightAnimate(内容,动画时间);//打开此h3的下一个div
}
//Прокрутить страницу до раскрытого заголовка
//это нужно, чтобы контент не уплывал вверх, особенно на маленьких экранах и при большом объеме