如果element有类将class添加到另一个元素

时间:2016-12-09 14:17:36

标签: javascript jquery html css

不确定我是否正确行事。我有一个菜单,可以在打开和关闭之间切换。现在我想要一个按钮显示菜单hasClass("open");。我想在class open消失后删除课程。

这是HTML部分;

<nav>
    <a class="closed"><i class="fa fa-bars"></i>Menu</a>
        <ul>
            <li>Menu items</li>
        </ul>
    <div class="close-btn">
        <i class="fa fa-times" aria-hidden="true"></i>
    </div>
</nav>

HTML有用,所以这并不重要,重要的是元素是:navaclosed

现在是jQuery部分;

$(document).ready(function(jQuery) {
    if ($("nav a").hasClass("open")) {
        $(".close-btn").addClass('show-me-the-button');
    } else {
        $(".close-btn").removeClass('show-me-the-button');
    }
});

但这不起作用。我已经搜索了stackoverflow但是所有人都给了我这个代码......不知道为什么它不起作用。我没有脚本错误......有什么帮助吗?

2 个答案:

答案 0 :(得分:3)

仅在初始页面加载时检查类。你在哪里改变open课程?您应该在该位置移动此代码。

答案 1 :(得分:1)

用户 - oryol 是正确的

尝试将代码放在这样的处理程序中:

$(document).ready(function(jQuery) {

    $('nav a').on('click', function(e) { // <----------- Click Handler (jQuery)

        // Use $(this) to access current clicked element
        if ($(this).hasClass("open")) {
            $(".close-btn").addClass('show-me-the-button');
        } else {
            $(".close-btn").removeClass('show-me-the-button');
        }

    })

});
  

详细了解Click Handler in jQuery

希望这有帮助!