ss26
@ss26
Верстальщик.

Как сбросить setTimeout в данном случае?

Всем привет.
Есть вот такой код:
var num = 0;
    function modalTime(num){
        if(num == 0){
            var modalTime= setTimeout(function(){
                // $('a.logout').click();
                console.log('logout');
            }, 3000);
        }else{
            clearTimeout(modalTime);
        }
    }
    
    var time = setTimeout(function(num){
        $('.modal-alert').fadeIn(function(){
            clearTimeout(time);
            num = 0;
            modalTime(num)
        });
        $('#overlay').fadeIn();
    }, 3000);

    $('.modal-alert a').click(function(){
        $.ajax({
            url: 'http://vulcanm.local/index.php?r=site%2Fecho',
            success:function(result){
                if(result == '1'){
                    clearTimeout(time);
                    num = 1;
                    modalTime(num);
                    $('.modal-alert').fadeOut();
                    $('#overlay').fadeOut();
                }
            }
        });
        return false;
    });

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

Вопрос: Почему при клике по кнопке в модальном окне таймер не сбрасывается?
  • Вопрос задан
  • 1108 просмотров
Решения вопроса 1
ILE-Salim
@ILE-Salim
Web-developer
Когда вы отправляете запрос на адрес - 'vulcanm.local/index.php?r=site%2Fecho' и если ответ успешен, то только тогда срабатывает clearTimeout(time) у вас. Посмотрите может ответ не успешный.
Или до отправки вызовите clearTimeout(time)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы