Как задать очередь событий jQuery?

Всем привет! Мне нужна последовательность действий в рамкой одной общей функции, не до конца понимаю как работает параметр queue(); и dequeue();

Мне необходимо по нажатию на блок добавить класс, а через 200ms убрать его, делаю вот так:

$(document).on('click', '.cart-button-add', function(){
        var $document = $(document);
        $document.queue(function() {
            setTimeout(function() {
                $(document).on('click', '.cart-button-add', function(){
                    $('#cart').addClass('ring');
                });
                $document.dequeue();
            }, 100);
        });
        $document.queue(function() {
            setTimeout(function() {
            $('#cart').removeClass('ring');
            }, 850);
            $document.dequeue();
        });
    });


Но уверен, что это криво и неправильно
  • Вопрос задан
  • 580 просмотров
Пригласить эксперта
Ответы на вопрос 1
andykov
@andykov
Shit happens
$('div').on('click', function(){
	$(this).addClass('ring');
  setTimeout(function(){
    $(this).removeClass('ring');
  }.bind(this), 200);
});

https://jsfiddle.net/o5oL01qn/
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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