@Binarix

Как подружить клик и delay?

Здравствуйте. При открытии страницы есть скрытое меню, оно открывается через несколько секунд, нужно сделать так, чтобы была возможность открыть его раньше этой задержки. Сейчас код такой
$( document ).ready(function() {
        $('.strigger').click(function() {
            $('#botmenu').slideToggle(500, function() {
                $('.trig').toggleClass("trigu");
            });
        });

        $('#botmenu').delay(40000).slideToggle(500, function() {
            $('.trig').toggleClass("trigu");
        });

    });


получается блок с задержкой перебивает блок с кликом
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
В делее делайте просто addClass, если блок открыт - не закроется, если закрыт - откроется.
+ можете сделать через JS set/clearTimeout, что наверное в вашем случае будет удобнее.
$( document ).ready(function() {
        var timeoutId = setTimeout(function() {
            $('#botmenu').slideToggle(500, function() {
                $('.trig').addClass("trigu");
            });
        }, 40000);
        $('.strigger').click(function() {
            clearTimeout(timeoutId);
            $('#botmenu').slideToggle(500, function() {
                $('.trig').toggleClass("trigu");
            });
        });

       

    });
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dmitry_pavlov
@dmitry_pavlov
World-class .NET freelance contractor (remotely)
Если это разовое действие - открыться через несколько секунд после загрузки страницы - можно оставить в ready только delay, а уже внутри его подписать на клик после первого автоматического открытия меню. так хотите сделать?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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