Javascript 在切换之间交换图标图像

Javascript 在切换之间交换图标图像,javascript,jquery,css,toggle,Javascript,Jquery,Css,Toggle,我有两个不同的图标,一个负号和一个加号。页面加载时,所有.project name块都有一个加号。当有人点击一个项目标题时,我想让减号显示它已经打开 我尝试了以下几点: $('.project-name-title').click(function() { var relative = $(this).next('.project-name-block-container'); if (!relative.hasClass('opened')) { $('

我有两个不同的图标,一个负号和一个加号。页面加载时,所有
.project name块
都有一个加号。当有人点击一个项目标题时,我想让减号显示它已经打开

我尝试了以下几点:

$('.project-name-title').click(function() {
      var relative = $(this).next('.project-name-block-container');
      if (!relative.hasClass('opened')) {
        $('.opened').slideUp(500).removeClass('opened');
        relative.addClass('opened minus-icon').slideDown();
      } else {
        relative.slideUp(500).removeClass('opened add-icon');
      }
      return false;
    });
但这并没有奏效。我做错了什么

$('.project name title')。单击(函数(){
var-relative=$(this.next('.project-name-block-container');
如果(!relative.hasClass('opened')){
$('.opened').slideUp(500).removeClass('opened');
relative.addClass('opened').slideDown();
}否则{
relative.slideUp(500).removeClass('opened');
}
返回false;
});
#项目节容器{
高度:自动;
宽度:60%;
}
.项目名称块容器{
显示:无;
}
.项目名称块{
边框顶部:1px实心#8585;
宽度:100%;
填充:50px0;
文本对齐:居中;
}
.项目名称及名称{
颜色:#072919;
字号:2em;
光标:指针;
显示:块;
}
.添加图标{
左边距:10px;
高度:20px;
宽度:20px;
}
.负号图标{
显示:无;
}
.项目名称说明{
字号:1em;
边缘顶部:25px;
}
/*.project-name-description.active{
显示:块;
}*/
/*--项目图像---*/
.项目图像容器{
宽度:90%;
利润率:50px5%;
}
.img项目{
宽度:30%;
高度:自动;
}
.project-img.left{
保证金权利:10%;
}
.project-img.对{
左边距:10%;
}

项目1
这是项目1的文本
项目2
这是项目2的文本
项目3
这是项目3的文本
项目4
这是项目4的文本
项目5
这是项目5的文本

打开的
类添加到内容的标题中,然后您可以使用该标题使用css显示/隐藏相关图标:-

.opened .minus-icon,
.add-icon {
    margin-left: 10px;
    height: 20px;
    width: 20px;
    display: inline;
}

.opened .add-icon,
.minus-icon {
    display: none;
}
此外,您需要为每个图像添加负号图像,而不仅仅是第一个图像

$('.project name title')。单击(函数(){
var相对=$(此);
如果(!relative.hasClass('opened')){
$('.opened').removeClass('opened').next('.project name block container').slideUp(500);
relative.addClass('opened').next('project name block container').slideDown();
}否则{
relative.removeClass('opened').next('project name block container').slideUp(500);
}
返回false;
});
#项目节容器{
高度:自动;
宽度:60%;
}
.项目名称块容器{
显示:无;
}
.项目名称块{
边框顶部:1px实心#8585;
宽度:100%;
填充:50px0;
文本对齐:居中;
}
.项目名称及名称{
颜色:#072919;
字号:2em;
光标:指针;
显示:块;
}
.打开。减去图标,
.添加图标{
左边距:10px;
高度:20px;
宽度:20px;
显示:内联;
}
.打开。添加图标,
.负号图标{
显示:无;
}
.项目名称说明{
字号:1em;
边缘顶部:25px;
}
/*.project-name-description.active{
显示:块;
}*/
/*--项目图像---*/
.项目图像容器{
宽度:90%;
利润率:50px5%;
}
.img项目{
宽度:30%;
高度:自动;
}
.project-img.left{
保证金权利:10%;
}
.project-img.对{
左边距:10%;
}

项目1
这是项目1的文本
项目2
这是项目2的文本
项目3
这是项目3的文本
项目4
这是项目4的文本
项目5
这是项目5的文本

您的
相对
对象是内部div,而不是图像。添加
$(this.find('.addicon').hide()$(this.find('.减号图标').show()当您需要显示负号和<代码>$(this).find('.add icon').show()时$(this.find('.减号图标').hide()其他方式谢谢!唯一的问题是,我的原始代码允许我通过单击标题关闭打开的面板,这不允许我,除非我单击另一个面板。知道如何使该功能恢复工作吗?感谢帮助!