Javascript 如何关闭div

Javascript 如何关闭div,javascript,jquery,html,css,Javascript,Jquery,Html,Css,当用户单击链接时,如何关闭此手风琴并更改打开的“p”上的图像。 到目前为止,如果你点击一个链接,它会切换内容和更改图像,但我不知道如何关闭打开的P。现在,它更像是一个onclick切换内容 我尝试添加,这会关闭所有的p,但不会将img更改为带有加号图标的默认值 $('p').hide(); $(this).bind('keypress click',函数(e){ e、 预防默认值(); $('p').hide(); var$icon=$(this.find('.icon'); if($icon.

当用户单击链接时,如何关闭此手风琴并更改打开的
“p”
上的图像。 到目前为止,如果你点击一个链接,它会切换内容和更改图像,但我不知道如何关闭打开的P。现在,它更像是一个onclick切换内容

我尝试添加,这会关闭所有的p,但不会将img更改为带有加号图标的默认值

$('p').hide();
$(this).bind('keypress click',函数(e){
e、 预防默认值();
$('p').hide();
var$icon=$(this.find('.icon');
if($icon.hasClass('first-image'))
{
$icon.removeClass('first-image').addClass('second-image');
}
其他的
{
$icon.removeClass('second-image').addClass('first-image');
}
$(this.next('p').slideToggle();
});
  • Lorem ipsum door sit amet,adipiscing Elite,sed do eiusmod temporal incident ut labour and dolore magna aliqua。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡

  • 知识是一种美德,是一种美德,是一种美德,是一种美德。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡

这就是im的问题。项目1已关闭,但img是(--)而不是(+)


如果我理解正确,您需要指定
a
选择器,而不是
this

如下图所示:

$('a').bind('keypress click',函数(e){
e、 预防默认值();
$('p').hide();
$('.icon').removeClass('second-image').addClass('first-image');
var$icon=$(this.find('.icon');
var$p=$(this.next('p').slideToggle();
如果($p.is(':visible'))
{
$icon.removeClass('first-image').addClass('second-image');
}
其他的
{
$icon.removeClass('second-image').addClass('first-image');
}
});
li{
列表样式:无;
}
p{
显示:无;
}
.图标:之前{
显示:内联块;
字体:普通14px/1字体;
字体大小:继承;
文本呈现:自动;
-webkit字体平滑:抗锯齿;
-moz osx字体平滑:灰度;
内容:“\f067”
}
.图标。第二个图像:之前{
内容:“\f068”;
}

  • Lorem ipsum door sit amet,adipiscing Elite,sed do eiusmod temporal incident ut labour and dolore magna aliqua。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡

  • 知识是一种美德,是一种美德,是一种美德,是一种美德。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡

不知何故,代码片段在这里不再有效,因此我创建了一个bin:

$(文档).ready(函数(){
//手风琴按钮动作(点击后执行以下操作)
$('.accordionButton')。单击(函数(){
//从所有按钮中删除ON类
$('.accordionButton').removeClass('on');
//不管怎样,我们关闭所有打开的幻灯片
$('.acordioncontent').slideUp('normal',function(){
$(this.prev().find('.img1').removeClass('img2');
});
//如果CONTEWNT没有打开,请打开它
if($(this).next().is(':hidden')==true){
//将ON类添加到按钮
$(this.addClass('on');
//$('.accordionButton').find('.img1').removeClass('img2');
//打开幻灯片
$(this).next().slideDown('normal',function()){
$(this.prev().find('.img1').addClass('img2');
});
}
});
/********************************************************************************************************************
关闭页面加载时的所有
********************************************************************************************************************/
$('.accordionContent').hide()
});

发生了什么错误?什么是不想要的?什么不起作用?请向我们展示您的尝试并添加更多细节。我如何关闭所有div(p)并让图像+成为每个链接上的污点?我已更新了我的答案。我不知道你的图标是如何运行的,所以我使用fontawsome,但原理是一样的。您需要像使用
p
s一样“重置”图标。e、 g.删除
第二个图像
类,并添加
第一个图像
类。
$(document).ready(function() {
//ACCORDION BUTTON ACTION (ON CLICK DO THE FOLLOWING)
    $('.accordionButton').click(function() {

        //REMOVE THE ON CLASS FROM ALL BUTTONS
        $('.accordionButton').removeClass('on');

             //NO MATTER WHAT WE CLOSE ALL OPEN SLIDES
              $('.accordionContent').slideUp('normal', function(){
                $(this).prev().find('.img1').removeClass('img2');
                        });

    //IF THE CONTEWNT ISN't OPEN THEN OPEN IT
    if($(this).next().is(':hidden') == true) {

        //ADD THE ON CLASS TO THE BUTTON
        $(this).addClass('on');
        //$('.accordionButton').find('.img1').removeClass('img2');

        //OPEN THE SLIDE
        $(this).next().slideDown('normal', function(){
            $(this).prev().find('.img1').addClass('img2');
        });
    }
});
/********************************************************************************************************************
CLOSES ALL S ON PAGE LOAD
********************************************************************************************************************/

$('.accordionContent').hide()
});
</script>