/** * @typedef {Object} $ */ (() => { const bindOrderButtonClick = () => { $('.order_btn').on('click', function(){ $('#fld_product_id').val($(this).data('id')); $('#fld_quantity').val(1); $('#frm_order_product_form').trigger('submit'); }); }; bindOrderButtonClick(); const dataTable = $('#data_table'); let iQueryCounter = 0; let iLastQueryId = null; let runningCall = null; $('#fld_search').on('keyup', function() { if(runningCall) { runningCall.abort(); } const value = $(this).val(); const data = { query : value, query_id : iQueryCounter, result : 'json' }; iLastQueryId = iQueryCounter; iQueryCounter++; runningCall = $.post(window.location, data, function({content}) { const newProductsList = $('#products_list', content).html(); if(newProductsList) { $('#products_list').html(newProductsList); bindOrderButtonClick(); } if(result_id === parseInt(iLastQueryId)) { dataTable.html(data_table); bindOrderButtonClick(); } }, 'json'); }); })();