Thomek
@Thomek

Как отменить функцию если закрыть вкладку браузера?

Как сделать так, если закрыть только что открытую вкладку когда таймер еще не закончился, тогда бонус не выдается и появляется document.title=“Ошибка"; ?!

<script>
$('.mav_bonus_item').click(function(event) {
    var el = $(this);
    var sec = 5;
    var timer = $('.timer');
    timerId = setTimeout(
        function tick() {
            document.title = ' '+sec+' - Ждите';
            timer.html(sec);
            if(!sec){
                clearTimeout(timerId);
                document.title="Бонус получен!";
                
            }
            else{
                sec--;
                timerId = setTimeout(tick, 1000);
                
            }
            
        }, 1000
        );
        setTimeout(function() {
            el.html('<div class=""><i class="fa fa-5x fa-fw fa-pulse fa-spinner text-danger"></i></div>');
            $.ajax({
                url: document.location.href,
                type: "POST",
                dataType: 'json',
                data: {bonus_click:el.data('id')},
                success: function(d){
                    if (d.ok) {
                        el.replaceWith(d.amount);
                        
                    }
                    else
                    el.html('<div class="alert alert-danger"><strong>Произошла ошибка :( Перезагрузите страницу.</strong></div>');
                    
                },
                error: function(){el.html('<div class="alert alert-danger"><strong>Произошла ошибка :( Перезагрузите страницу.</strong></div>')}
                
            });
            
        }, 5000);
    
});
</script>
  • Вопрос задан
  • 111 просмотров
Пригласить эксперта
Ответы на вопрос 1
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
А куда вы выводить document.title=“Ошибка"; собрались, если вкладка закрывается?
Для вашего случая подойдёт событие https://developer.mozilla.org/en-US/docs/Web/API/W...
Ответ написан
Ваш ответ на вопрос

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

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