 <p>You could add a variable to indicate when an animation is active and don't allow another one to start, if the previous one hasn't finished.</p> <pre><code>var isAnimating = false; $(function () { $('#dropMenu .level1 .submenu.submenu').hover(function() { if (!isAnimating) { $(this).find('ul.level2,.level3 li,.level4 li,.level5 li,.level6 li').stop(true, true).hide(1000); $(this).find('ul.level2,.level3 li,.level4 li,.level5 li,.level6 li').stop(true, true).show(1000); isAnimating = true; } }, function() { $(this).find('ul.level2,.level3 li,.level4 li,.level5 li,.level6 li').stop(true, true).show(1000); $(this).find('ul.level2,.level3 li,.level4 li,.level5 li,.level6 li').stop(true, true).hide(1000); isAnimating = false; });}); </code></pre>