javascript - 通过单击 anchor 显示和隐藏两个图标

标签 javascript jquery css toggle

<分区>

单击 anchor 可以显示和隐藏两个图标??我有一个 Foundation Accordion,当我单击选项卡(它们是 anchor )时,我需要显示图标以消失,反之亦然。我不知道为什么浏览器控制台告诉我 'addEventListener' 为 null,因为元素存在并且是一个 anchor 。我想用 javascript 来做,但如果不可能,我会使用 Jquery。这是我尝试过但没有成功的方法。

<dd class="accordion-navigation">
  <a href="#panel1a" class="tab-table" role="tab" id="panel1a-heading" aria-controls="panel1a" id="first-tab-accordion">Subastas Activas
    <i class="fa fa-chevron-down styled-tab-icon arrow-content-hidden" id="arrow-content-hidden-first"></i>
    <i class="fa fa-chevron-up styled-tab-icon arrow-content-shown" id="arrow-content-shown-first"></i>
  </a>
  // More stuff...
</dd>

这是CSS

.arrow-content-hidden {
 }

.arrow-content-shown {
  display: none;
}

这是js

<script>

function toggle() {
  var arrowTabDown = document.getElementById("arrow-content-hidden-first");
  var arrowTabUp = document.getElementById("arrow-content-shown-first");
  if (arrowTabDown.style["display"] == 'none') {
    arrowTabDown.style["display"] = 'block';
    arrowTabUp.style["display"] = 'none';
  } else {
    arrowTabDown.style["display"] = 'none';
    arrowTabUp.style["display"] = 'block';
  }
};

document.getElementById("first-tab-accordion").addEventListener("click", toggle, false);
</script>

最佳答案

起初:
你有 2 个用于 #first-tab-accordion 的 id,然后你应该在加载标签后运行脚本,这样它就可以工作了:

<dd class="accordion-navigation">
  <a href="#panel1a" class="tab-table" role="tab" aria-controls="panel1a" id="first-tab-accordion">Subastas Activas
  <i class="fa fa-chevron-down styled-tab-icon arrow-content-hidden" id="arrow-content-hidden-first"></i>
  <i class="fa fa-chevron-up styled-tab-icon arrow-content-shown" id="arrow-content-shown-first"></i>
  </a>
</dd>
<script>
function toggle() {
 var arrowTabDown = document.getElementById("arrow-content-hidden-first");
 var arrowTabUp = document.getElementById("arrow-content-shown-first");
 if (arrowTabDown.style["display"] == 'none') {
  arrowTabDown.style["display"] = 'block';
  arrowTabUp.style["display"] = 'none';
 } else {
  arrowTabDown.style["display"] = 'none';
  arrowTabUp.style["display"] = 'block';
 }
};
document.getElementById("first-tab-accordion").addEventListener("click", toggle, false);
</script>

关于javascript - 通过单击 anchor 显示和隐藏两个图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31406620/

上一篇:html - 如何删除单个表中两个 tds 之间的空格

下一篇:jquery - 如何找到滚动条的宽度

相关文章:

css - 整体代码结构失败

html - 无法让背景填充最小宽度

javascript - 为什么由 setTimeout 拆分的工作负载仍然会卡住浏览器?

javascript - require.js、AMD 和 "missing license key"使用 jwPlayer 7

jquery - JavaScript : how to change form action attribute value based on selection?

javascript - 当用户滚动到 T&C 页面底部时启用复选框?

javascript - 当我直接在控制台上键入而不是在 JavaScript 代码中键入时,可以使用 resizeTo 调整弹出窗口的大小

javascript - Google map React 卡在 'loading map...' 中

php - php中的表单组件重复

css - 带有颜色和下划线的剑道 ui 面板栏格式文本