если hasclass addclass иначе removeclass не работает

0

Это моя разметка

<header id="header">
    <nav>
        <ul class="menu">
            <li id="homeSecLink" class="active"><a href="#Home" class="homeLink">Home</a></li>
            <li><a href="#Partners">Partners</a></li>
            <li><a href="#About">About</a></li>
            <li><a href="#Contact">Contact</a></li>
        </ul>
    </nav>
</header>

При загрузке страницы я пытаюсь добавить класс borderGap в заголовок, если homeSecLink имеет active класс else remove borderGap

Здесь addClass работает, но removeClass не работает

Это то, что я сделал:

$(document).ready(function() {
    if ($('#homeSecLink').hasClass("active")) {
        $('#header').addClass('borderGap');
    } else {
        $('#header').removeClass('borderGap');
    }
});
  • 5
    определить not working ?
  • 3
    Похоже, это работает нормально? jsfiddle.net/FRaTH/1 и jsfiddle.net/FRaTH/2
Показать ещё 1 комментарий
Теги:
removeclass
addclass

1 ответ

1
Лучший ответ

Для работы removeClass вам необходимо удалить active class

HTML

<header id="header">
    <nav>
        <ul class="menu">
            <li id="homeSecLink" class="active"><a href="#Home" class="homeLink">Home</a></li>
            <li><a href="#Partners">Partners</a></li>
            <li><a href="#About">About</a></li>
            <li><a href="#Contact">Contact</a></li>
        </ul>
    </nav>
</header>
<a id="toggle">Toggle</a>

JavaScript

$(document).ready(function() {
    $('#toggle').click(function() {
        if ($('#homeSecLink').hasClass("active")) {
            $('#header').addClass('borderGap');
            $('#homeSecLink').removeClass('active');
        } else {
            $('#header').removeClass('borderGap');
            $('#homeSecLink').addClass('active');
        }
    });
});

Демо-ссылка

  • 0
    Возможно, active класс добавлен серверным скриптом? Это означает, что это не входит в сферу действия ОП.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню