In order to fix it, you need to add an event for the AJAX calls.
I also added .off() so the value won’t add itself multiple times after every AJAX call.
jQuery(document).ajaxComplete(function() { $('.woocommerce-cart .quantity').change(function() { if ($(this).val != '') { $('button[name="update_cart"]').removeAttr('disabled'); } }); jQuery('.woocommerce-cart .quantity').off('click', '.plus').on('click', '.plus', function(e) { $input = jQuery(this).prev('input.qty'); var val = parseInt($input.val()); $input.val(val + 1).change(); }); jQuery('.woocommerce-cart .quantity').off('click', '.minus').on('click', '.minus', function(e) { $input = jQuery(this).next('input.qty'); var val = parseInt($input.val()); if (val > 1) { $input.val(val - 1).change(); } }); });