javascript - 带有加号和减号图标的 jQuery 可扩展 div

标签 javascript jquery html css

我正在尝试创建一个向上打开的简单 Accordion div。我的 Accordion 工作得很好。但我现在想在 Accordion 中添加加号和减号图标。

我在下面的 codepen 上做了一些工作。 http://codepen.io/Davabo/pen/jqzgxQ

HTML

<div class="accordion">
  <div class="info">test text here</div>
  <h3><span class="plus">+</span> More Info</h3>
</div>

Javascript

var $accordionIO = $('.accordion h3');
$accordionIO.prev('div').hide();

$accordionIO.click(function() {
  $(this).prev('div').slideToggle();
});

$(".accordion h3").click(function() {
  //Inner 
  var jqInner = $(this).next();
  if (jqInner.is(":visible")) {
    jqInner.slideUp()
    $(this).find('.plus').html('+');
  } else

  {
    jqInner.slideDown()
    $(this).find('.plus').html('-');
  }
})

如您所见, Accordion 效果很好,我的加号和减号图标也有点用。问题是,当 Accordion 展开时,图标像预期的那样变成减号,但是当 Accordion 再次关闭时,图标仍然是减号,而它应该变回加号。

最佳答案

你的代码应该是这样的: See codepen

      var $accordionIO = $('.accordion h3');
      $accordionIO.prev('div').hide();

      $(".accordion h3").click(function () {
          //Inner 
          var jqInner = $('.info', $(this).parent());
          if (jqInner.is(":visible"))
          {
              jqInner.slideUp()
              $(this).find('.plus').html('+');
          }

          else

          {
              jqInner.slideDown()
              $(this).find('.plus').html('-');
          }
    })

关于javascript - 带有加号和减号图标的 jQuery 可扩展 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36646020/

相关文章:

javascript - jquery 单选按钮上的单击事件

javascript - 过渡开始得太早,而 css 样式尚未完全应用

javascript - 使用 Plovr 从简单的 javascript 文件中删除空格而不管理依赖项

jquery - jGrowl 淡出后会覆盖我的元素吗?

jquery - 如何在链接下方显示div

php - 加载太多图片,减慢我的网站

javascript - 让图表居中对齐 - d3

javascript - 禁用 HTML5 音频

javascript - 如何停止在 Kendo Grid 中添加空行?

javascript - 如何从 AngularJS 中的 Controller 启用/禁用 Angular Material 日期选择器