Как пофиксить баг несложного скрипта меню на javascript?

Меню не правильно работает а именно когда нажимаю по якорной ссылке на первую ссылку по якорю поднимается в шапку затем меню закрывается но остальные ссылки меню когда нажимаю то переходит по якорю меню заезжает и затем обратно выезжает то есть убирается затем снова вставляется класс на ссылках меню. вот сайт a0237054.xsph.ru
переходите пожалуйста посмотрите.

Вот js скрипт:
$('.open-button').click(function() 
{
        if(!$('.menu-button').hasClass('open-done'))
        {
            $('.menu-button').addClass('open-done');
            $('.menu-block-1').addClass('open-done');
            $('.nav').addClass('open-done');
            setTimeout(function(){$('.menu-block-2').addClass('open-done')}, 100);
            setTimeout(function(){$('.menu-link-1').addClass('open-done')}, 500);
            setTimeout(function(){$('.menu-link-2').addClass('open-done')}, 800);
            setTimeout(function(){$('.menu-link-3').addClass('open-done')}, 700);
            setTimeout(function(){$('.menu-link-4').addClass('open-done')}, 900);
            setTimeout(function(){$('.menu-link-5').addClass('open-done')}, 600);
            setTimeout(function(){$('.menu-link-6').addClass('open-done')}, 1000);

            setTimeout(function(){$('.menu-block-1').addClass('z_index')}, 100);
            setTimeout(function(){$('.menu-block-2').addClass('z_index')}, 200);
            setTimeout(function(){$('.nav').addClass('z_index')}, 200);
        }
        else
        {
            $('.menu-button').removeClass('open-done');
            $('.menu-link-1').removeClass('open-done');
            $('.nav').removeClass('open-done');
            setTimeout(function(){$('.menu-link-2').removeClass('open-done')}, 400);
            setTimeout(function(){$('.menu-link-3').removeClass('open-done')}, 300);
            setTimeout(function(){$('.menu-link-4').removeClass('open-done')}, 500);
            setTimeout(function(){$('.menu-link-5').removeClass('open-done')}, 200);
            setTimeout(function(){$('.menu-link-6').removeClass('open-done')}, 600);
            setTimeout(function(){$('.menu-block-1').removeClass('open-done')}, 800);
            setTimeout(function(){$('.menu-block-2').removeClass('open-done')}, 600);

            setTimeout(function(){$('.nav').removeClass('z_index')}, 1000);
            setTimeout(function(){$('.menu-block-1').removeClass('z_index')}, 1800);
            setTimeout(function(){$('.menu-block-2').removeClass('z_index')}, 1600);
        }
});
  • Вопрос задан
  • 89 просмотров
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
как минимум отсутствует превентДефаулт, соответственно ссылки будут работать как и положено - переходить по якорю. В остальном - лень читать все это нагромождение, просто что-то не там выставляете из классов, или забываете убрать.
Ответ написан
@Daler-1 Автор вопроса
***
Всё нашел причину бага. js и css не причём ошибка заключалась в html там где на ссылки а прописал классы для работы с js эти же классы повторял на иконок svg когда открою меню на иконок активного класса нету есть только на ссылках а когда нажимаю на иконку то активный класс у ссылки убирается и присваивается к иконке.
Спасибо за внимание!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы