javascript - classlist.toggle 不适用于 fa-check

标签 javascript html css

我已经编写了以下代码来通过检查切换破折号,但没有发生所需的切换:

function myFunction(x) {
  x.classList.toggle("fa-check");
}
.fa {
  font-size: 50px;
  cursor: pointer;
  user-select: none;
}

.fa:hover {
  color: darkblue;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<i onclick="myFunction(this)" class="fa fa-minus"></i>

同样令人惊讶的是,如果我将 fa-minus 替换为 fa-check 并且反之亦然,代码似乎可以正常工作!

有人可以提出解决方案吗?因为我需要第一种方法才能工作。

最佳答案

您还需要同时切换fa-minus。实际上,当您添加 fa-check 时,您同时拥有它们,所以一个会覆盖另一个。

您还可以依靠 Font Awesome 类来增加大小:

function myFunction(x) {
  x.classList.toggle("fa-check");
  x.classList.toggle("fa-minus");
}
.fa {
  cursor: pointer;
  user-select: none;
}

.fa:hover {
  color: darkblue;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

<i onclick="myFunction(this)" class="fa fa-5x fa-minus"></i>

关于javascript - classlist.toggle 不适用于 fa-check,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49218821/

相关文章:

javascript - 双击(没有超链接)如何在网页上工作?

javascript - 查找数组中的对象

html - 导航栏不会延伸到网页边缘

javascript - (Angular2 RC5) 如何使用 SystemJS 为每个模块创建一个可以由路由器延迟加载的包?

javascript - Jquery 等待 AJAX 调用完成

html - CSS/HTML : Alpha setting applied to background-color makes it disappear

php - 是否需要验证 $_GET id

javascript - 如何使用jquery根据屏幕宽度更改div的类

css - HLine/VLine 颜色的 QT 样式表

css - 如何只打印页面的特定部分?