javascript - jQuery 添加/删除按钮上的类以隐藏元素

标签 javascript jquery html css animation

尝试获取移动页脚菜单(#mobile-menu),以在单击或点击 float 按钮时隐藏/显示。我可以将点击事件处理程序添加到按钮 (#mobile-footer-btn),该按钮又将一个类应用到菜单并使其在屏幕外呈现动画。

<footer id="mobile-footer">
  <div id="mobile-menu">
    <div id="mobile-footer-container">
      <div class="mobile-link">
        <a href="#" class="text-center">My Account</a>
      </div>
      <div class="mobile-link">
        <a href="#" class="text-center">Reviews</a>
      </div>
      <div class="mobile-link">
        <a href="#" class="text-center">Contact Us</a>
      </div>
    </div>
  </div>
  <div id="mobile-footer-close">
    <button id="mobile-footer-btn">
      <div class="mobile-btn-close">
        <span></span>
      </div>
    </button>
  </div>
</footer>

无论出于何种原因,我无法删除该类并将新类添加到同一 ID,这将添加一个类以再次显示菜单。

jQuery(document).ready(function($){
    // Store menu container
    var mobileMenu = '#mobile-menu';
    // Store Trigger
    var mobileBtn = '#mobile-footer-btn';

    //Trigger closing the footer menu
    $(mobileBtn).on("click", function() {
        $(mobileMenu).addClass('mobile-menu-hide');
    });

    $('.mobile-btn-close').click(function() {
        $(this).addClass('is-rotating');
    });

    if($(mobileMenu).hasClass('mobile-menu-hide')) {
        $(mobileBtn).on("click", function(e) {
            e.stopPropagation();
            $(mobileMenu).removeClass("mobile-menu-hide").addClass("mobile-menu-show");
        });
    }
});

任何帮助将不胜感激!

最佳答案

您只需要一个点击事件!您的 if 条件永远不会被评估为 true,因此您的 onclick 事件永远不会被触发。最好将其放置在一个 onclick 事件中。代码如下:

jQuery(document).ready(function($){
    // Store menu container
    var mobileMenu = '#mobile-menu';
    // Store Trigger
    var mobileBtn = '#mobile-footer-btn';

    $('.mobile-btn-close').click(function() {
        $(this).addClass('is-rotating');
    });

    $(mobileBtn).on("click", function(e) {
        e.stopPropagation();
        if($(mobileMenu).hasClass('mobile-menu-hide')) {
          $(mobileMenu).removeClass("mobile-menu-hide").addClass("mobile-menu-show");
        } else {
          $(mobileMenu).removeClass("mobile-menu-show").addClass("mobile-menu-hide");
        }
    });
});

这是骗子:https://plnkr.co/edit/SG8eFns91wV4adxapFDB

现在我想了想,更好的是:只需切换隐藏菜单的一个类,然后使用 jQuery 的 toggleClass 函数即可。像这样的事情:

$(mobileBtn).on("click", function(e) {
    e.stopPropagation();
    $(mobileMenu).toggleClass('mobile-menu-hide');
});

关于javascript - jQuery 添加/删除按钮上的类以隐藏元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34908353/

相关文章:

javascript - 动态设置背景图像或创建 img 标签有什么区别?

javascript - 当我尝试 append data-id 时;我收到一个错误

javascript - 防止表单重定向或刷新提交?

javascript - 如何使 SVG 在 DOM 中不占用空间?

javascript - 从对象访问任意属性

javascript - Python Flask + Angular 错误 : 'StoreController Undefined'

php - 上传前检查文件属性

jquery - 如何使用 jQuery 检查表单提交上的文本字段是否为空?

html - 如何删除提交按钮上的底部和右侧框阴影?

javascript - 如何获取行框的高度一个 block 元素,里面有内联元素,在呈现时由