// delay function init $(document).ready(function() { mainNavigation.init(); }); // delay function var mainNavigation = { delay: 2000, closeTimeout: null, init: function() { $('#mainnav > li').each(function() { $(this).hover(function(){ if(!$(this).hasClass('hover')) { mainNavigation.closeSubnav(); } clearTimeout(mainNavigation.closeTimeout); $(this).addClass('hover'); }, function() { mainNavigation.closeDelay(); }); }); }, closeDelay: function() { mainNavigation.closeTimeout = setTimeout(function(){ console.log('close now'); mainNavigation.closeSubnav(); }, mainNavigation.delay); }, closeSubnav: function() { $('#mainnav > li').each(function() { $(this).removeClass('hover'); }); } }