Не срабатывает toggleClass jQuery

Недавно начал изучать jQuery. Пытаюсь сделать выезжающее меню слева. Не срабатывает toggleClass. Помогите пожалуйста

HTML:

<div class="menu">
            <a href="" class="menu-btn"></a>
            <nav class="menu-list">
                <a href="#">Home</a>
                <a href="#">About me</a>
                <a href="#">Skills</a>
                <a href="#">Portfolio</a>
                <a href="#">Contacts</a>
            </nav>
        </div>

CSS:

.menu{
    position: fixed;
    left: 0; top: 0;
    width: 30%;
    height: 100vh;
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    background-color: #fff;
    transition: 1s;
    transform: translateX(-100%);
}

.menu_active {
    transform: translateX(0%)
}

.menu-list{
    display: flex;
    justify-content: space-around;
    align-items: center;
    height: 50%;
    flex-direction: column;
    margin-right: 50px;
}

.menu-list a{
    padding: 10px;
    text-decoration: none;
    font-size: 34px;
    color:  #828282;
    font-family: "Gilroy-Bold";
    text-transform: uppercase;
    font-weight: 500;
}

.menu-list a:hover{
    color: #070707;
    transition: 1s;
    font-weight: 700;
}

.menu-btn{
    width: 30px;
    height: 30px;
    background-color: #333;
    position: absolute;
    right: -30px;
    top: 5px;
}

JS:

$(function(){

    function ClickButton() {
        $('.menu').toggleClass('menu_active');
    }

    $('.menu-btn').on('click', function() {
        ClickButton()
    })
});

Ответы (1 шт):

Автор решения: Алексей Шиманский
<a href="" class="menu-btn"></a>
        ^^ проблема тут

При клике на ссылку, в которой пустой href - перезагружается страница.

Ссылка для того и создана, чтобы переходить на другую страницу по указанному урлу.

Нужно:

  • Либо поставить href="#"
  • Либо не использовать ссылку, а использовать нормальную кнопку (зачем тогда ссылка?)
  • Либо использовать e.preventDefault()
→ Ссылка