var time = null; $("#menu").hover(function(){ clearTimeout(time); $("#show").show(); console.log("show"); },function(){ time = setTimeout(function(){ $("#show").hide(); console.log("hide"); },50); }); $("#show").hover(function(){ clearTimeout(time); $(this).show(); console.log("show"); },function(){ time = setTimeout(function(){ $("#show").hide(); console.log("hide"); },50); });