@Binarix

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

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

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

    });


получается блок с задержкой перебивает блок с кликом
  • Вопрос задан
  • 124 просмотра
Решения вопроса 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, а уже внутри его подписать на клик после первого автоматического открытия меню. так хотите сделать?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
28 нояб. 2024, в 05:21
2000 руб./за проект
28 нояб. 2024, в 05:18
500 руб./за проект
28 нояб. 2024, в 03:51
3500 руб./за проект