javascript - Jquery toggleclass 不起作用

标签 javascript jquery

我的 toggleclass 函数无法工作,我不知道为什么。感谢您的帮助!

jsfiddle: http://jsfiddle.net/t763P/1460/

<li id="toggle-favicon">
    <a href="#">Orders <span class="fas fa-chevron-left"></span></a>
    <ul class="nav nav-second-level">
        <li>
            <a href="#">File orders</a>
        </li>
        <li>
            <a href="#">Product orders</a>
        </li>
    </ul>
</li>

$('#toggle-favicon').click(function(){
    $(this).find('span').toggleClass('fa-chevron-left fa-chevron-down');
    console.log($(this).find('span'));
});

最佳答案

在最新版本的 font awesome 中,<span class="fas fa-chevron-left"></span>将转换为一些 SVG 元素。并移除对应的span元素。

因此,要更改图标的类别,您需要切换此 svg 元素的类别。

还要记住 .toggleClass不会在 svg 上工作元素为 jQuery v1.x不可以这样做。所以你需要使用 .attr("class" ... )方法。

$('#toggle-favicon').click(function() {
  var $el = $(this).find('svg');
  $el.attr("class", function() {
    return $(this).attr("class").indexOf("fa-chevron-left") != -1 ? "fa-chevron-right" : "fa-chevron-left";
  })
});

Fiddle

如果您使用 jQuery 3.x那么你可以使用 .toggleClass还有……

$('#toggle-favicon').click(function() {
  var $el = $(this).find('svg');
  $el.toggleClass("fa-chevron-left fa-chevron-right");
});

Fiddle

关于javascript - Jquery toggleclass 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49170322/

相关文章:

javascript - 通过输入改变立方体旋转速度(threejs)

javascript - 将图像用于 webkit 滚动条 - webkit-scrollbar-track-piece 的最小高度?

javascript - Node/redis 和回调的控制流问题?

php - ZEND PHP + JQUERY 编码问题

javascript - PythonAnywhere 如何处理多个 "web workers"或进程

javascript - 如何使用纯 JavaScript 和 CSS 制作轮播?

jquery 从顶部滚动到 px 计数,然后将 div 设置为从顶部固定到滚动的其余部分

javascript - 如何在javascript文件中添加区域,visual studio

javascript - 更简洁地编写多个逻辑运算符

javascript - 如何在 init 中添加函数