function filterListFunctionality() { const techFilterList = $('#tech_filter_list'); const useFilterItem = $('.use-filter'); const showTimeout = 250; const hideTimeout = 3000; const animationDuration = 300; let showFiltersTimeout = null; let hideFiltersTimeout = null; function showFilters() { console.log('showFilters'); techFilterList.fadeIn(animationDuration); } function hideFilters() { console.log('hideFilters'); techFilterList.fadeOut(animationDuration); } function hideFilterDelayStart() { console.log('hideFilterDelayStart'); clearTimeout(showFiltersTimeout); hideFiltersTimeout = setTimeout(function () { console.log('hideFiltersTimeout'); hideFilters(); }, hideTimeout); } function showFilterDelayStart() { console.log('showFilterDelayStart'); clearTimeout(hideFiltersTimeout); showFiltersTimeout = setTimeout(function () { console.log('showFiltersTimeout'); showFilters(); }, showTimeout); } techFilterList.on('click', function (e) { showFilters(); }); techFilterList.on('mouseover', function (e) { showFilterDelayStart(); }); useFilterItem.on('mouseover', function (e) { showFilterDelayStart(); }); useFilterItem.on('mouseout', function (e) { hideFilterDelayStart(); }); techFilterList.on('mouseout', function (e) { hideFilterDelayStart(); }); } filterListFunctionality();