Iconify对DOM的更改没有反应

时间:2019-06-24 02:05:45

标签: javascript html dom

当单击我的按钮时,“数据图标”属性(控制呈现的图标)会更改,但是iconify似乎并没有更新图标。

我没有运气就试图暂停和取消暂停突变观察器。

头上

<script src="https://code.iconify.design/1/1.0.2/iconify.min.js"></script>

体内

<span class="iconify chevron" data-icon="jam:chevron-down" data-inline="false" onclick="expand(0)"></span>

外部Js

function expand(num) {
  var chevron = document.getElementsByClassName('chevron');
  var direction = chevron[num].getAttribute('data-icon');

  if (direction == 'jam:chevron-down') {
    chevron[num].setAttribute('data-icon','jam:chevron-up');

   } else {
    chevron[num].setAttribute('data-icon','jam:chevron-down');
   }
}

我希望图标从人字形向下变为向上。 实际输出不会更改svg数据,而是更改正确的属性。

我不确定是否可以替换图标,因为脚本会用svg切换占位符跨度。

我试图更改类,但是该类也应该更改图标,但是仍然没有更新。

编辑:要解决这个问题,我只是用新的图标span替换了span本身,例如:

<span class="iconify chevron" data-icon="jam:chevron-down" data-inline="false" onclick="expand(0)"></span>

to 

<span class="iconify chevron" data-icon="jam:chevron-up" data-inline="false" onclick="expand(0)"></span>

在父div上使用.innerHTML。

Iconify似乎只扫描占位符跨度,这意味着它无法识别对新svg属性的更新。

0 个答案:

没有答案