@ennet

Callback при использовании .trigger() Jquery?

У меня есть ряд навешанных триггеров по клику. Клики в свою очередь вызывают другие методы и функции, в том числе и асинхронные. И бывают моменты, когда кто-то раньше другого вызывается.
$('.js-block_1').trigger('click');
$('.js-block_2').trigger('click');
$('.js-block_3').trigger('click');


Не подскажете, как можно сделать Callback ? По документации .trigger не имеет CallBack.

Приходила идея с промисами, но не могу понять куда все это прописывать, ведь тут просто клики. Спасибо!
  • Вопрос задан
  • 671 просмотр
Пригласить эксперта
Ответы на вопрос 2
allard
@allard
Серийный программист
Тригер просто создает событие, он не в курсе того что дальше делают ваши обработчики.
Если вы вызываете события для набора элементов, то вы правы про промисы, без них никак не обойтись, т.к. не понятно когда отработают все обработчики для всех элементов набора...
Если же, у вас четкая последовательность тригеров и элементы единичные и уникальные, то вызывайте следующий тригер в колбеке события сработавшего от предыдущего тригера.

Думаю ничего нового для вас не сказал.
Хотя возможно есть супер хаки для таких ситуаций, о которых мы не в курсе =)
Ответ написан
Комментировать
kalbac
@kalbac
Wordpress Developer Full-Stack
При вызове метод .trigger() может принимать входящие данные в виде масива.
(function( $ ){
$('selector').trigger('click', ['Custom']);
$('selector').on('click', function( event, data ){
if( data == 'Custom' ) {
console.log('Incoming data is Custom');
}
});
})(window.jQuery);

Тем самым вы уже можете понимать какое именно событие сработало и вызывать соответствующую функцию.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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