jQuery 更改切换按钮符号

标签 jquery html css toggle

我有这样的情况:我有一个菜单,它只显示,然后单击按钮。一切正常,除非在菜单打开后,我希望它关闭。按钮符号没有改变并停留在“关闭”。我做错了什么?

    $(document).ready(function () {
     $(".menu-button").click(function () {
         $(".first-page nav").slideToggle(500);
     });
     if ($('.menu-button').hasClass("menu-open")) {
         $('.menu-button').on('click', function () {
             $(this).removeClass('menu-open');
             $(this).addClass('menu-close');
         });
     }
     if ($('.menu-button').hasClass("menu-close")) {
         $('.menu-button').on('click', function () {
             $(this).removeClass('menu-close');
             $(this).addClass('menu-open');
         });
     }
 });

fiddle :http://jsfiddle.net/a0kscpa3/

最佳答案

您始终可以通过简化函数来整理 JS,这样就没有条件语句或多个点击事件。

看看这个jsFiddle

$('.btn').on('click',function(e){
    e.preventDefault();
    $('.menu').stop().slideToggle();
    $(this).toggleClass('menu-open');
});

还有 jQuery stop()函数用于防止用户多次点击时动画排队。

关于jQuery 更改切换按钮符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30819182/

相关文章:

javascript - 如何使用 $.getScript ("") 发送推荐人?

html - Dreamweaver css id 和类生成

html - 内容框应扩展到页脚,即使是空的

javascript - 如何加载文件并查看其内容?

javascript - 同位素不居中

html - Swift 3 NSURL html 错误不编译

html - flexbox - 右对齐

jquery - 将 JS 文件放在 Css 之前导致边距错误

html - 选择导航栏中的第一个 <li>

javascript - 如何捕获 Bootstrap 导航栏下拉事件?