Как остановить таймер?

Есть ajax запрос под вешанный на таймер
//ajax под грузка сообщений на странице поста
        function getMessages() {
            $.ajax({
                url: "ajax/postComments.php",
                method: "POST",
                data: ({postID: <?php echo $id ?>}),
                dataType: "html",
                success: function (data) {
                    $('.author-messages-list').empty();
                    $('.author-messages-list').append(data);
                }
            });
        }
        var timer = getMessages();
        var timerPostAuthor = setInterval(function() {
            getMessages();
        }, 2000);

И есть textarea с классом .text(Она приходит с ajax запроса, нужно чтоб когда пользователь пишет комментарий форма не перезагружалась)
Как при change на .text остановить таймер?
Попробовал что-то накорябать, не работает
$(document).on('change', '.text', function () {
        clearInterval(timerPostAuthor);
    });
  • Вопрос задан
  • 165 просмотров
Решения вопроса 1
@fomenko_alexandr
Я думаю, что событие нужно вешать не на документ, а на саму форму ввода
Т.е. должно быть примерно так:

$('.text').on('input', function () {
clearInterval(timerPostAuthor);
});

Только в этом случае выполнение setInterval остановится. Но, можно, заново запустить новый интервал в функции этого же события
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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