Задать вопрос

Как использовать debounce в jquery?

Есть код:

jQuery( function( $ ) {
  $( 'body' ).on( 'change', '.qty', function() { // поле с количеством имеет класс .qty
     setTimeout(function() { 
                    $( '[name="update_cart"]' ).trigger( 'click' );
                }, 1300 );
  } );
  
    $( 'body' ).on( 'click', '.quantity-button.inc, .quantity-button.dec', function() { // элементы инкремента/декремента 
     setTimeout(function() { 
                    $( '[name="update_cart"]' ).trigger( 'click' );
                }, 1300 );
  } );
} );


Этот код тригерит кнопку "обновить корзину" после нажатия на + или - с задержкой в 1300м/с.
Есть задача доработать этот код и сделать так, чтобы тригер срабатывал с задержкой, но после последнего нажатия на кнопку. Для этого подключил плагин debounce, но не получается правильно написать скрипт.
  • Вопрос задан
  • 503 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@Sing303
jQuery(function($) {
    var updateCart = _.debounce(function() {
      $('[name="update_cart"]').trigger('click');
    }, 1300);

    $('body').on('change', '.qty', function() {
      updateCart();
    });

    $('body').on('click', '.quantity-button.inc, .quantity-button.dec', function() {
      updateCart();
    });
  });
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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