Check out this plugin: http://cherne.net/brian/resources/jquery.hoverIntent.html It may help you. Instead of mouseenter and leave do $('object').hoverIntent(function(){ $("ul.LvlTwo").slideToggle('medium');
},function(){ setTimeout(function () { $("ul.LvlTwo").slideToggle(' > > medium'); > }, 2000); }); 2009/6/2 zayatzz <alan.kesselm...@gmail.com> > > Thanks. > > I did that: > > <script type="text/javascript"> > $(document).ready(function () { > $("ul.LvlOne > li:has(ul)").bind("mouseenter",function(event){ > $("ul.LvlTwo").slideToggle('medium'); > }); > $("ul.LvlOne > li:has(ul)").bind("mouseleave",function(event){ > setTimeout(function () { > > $("ul.LvlTwo").slideToggle('medium'); > }, 2000); > }); > }); > </script> > > Even with 4 second or longer delay it starts flashing at some point. > > It actually became worse, because now you have 2 seconds to get your > mouse cursor back to where menu is supposed to be so you have even > more chances for the menu to start jumping up and down, closed - > open... > > Perhaps there should be somekind of doublecheck at mouseleave event > that checks if the mouseenter on same element havent fired already? > > Alan. > > On Jun 2, 8:33 pm, Gustavo Salomé <gustavon...@gmail.com> wrote: > > Try the setTimeout function > > > > 2009/6/2 zayatzz <alan.kesselm...@gmail.com> > > > > > > > > > > > > > Hello > > > > > Is it possible to mouseleave event have some kind of delay inserted > > > into it? > > > > > I have this small script, which is working just fine : > > > > > <script type="text/javascript"> > > > $(document).ready(function () { > > > $("ul.LvlOne > > > li:has(ul)").bind("mouseenter",function(event){ > > > $("ul.LvlTwo").slideToggle('medium'); > > > }); > > > $("ul.LvlOne > > > li:has(ul)").bind("mouseleave",function(event){ > > > $("ul.LvlTwo").slideToggle('medium'); > > > }); > > > }); > > > </script> > > > > > The problem is that the menu that opens is quite long and visitors of > > > the site (me among them) move cursor down where menu is supposed to > > > end up when its fully opened, but since the menu has not reached this > > > far, the mouseleave event fires. When computer or browser is slow you > > > can see even stranger thing. > > > > > Menu gets mouseleave event and starts closing, but not before menu > > > reaches the cursor. That means the menu gets mouseleave, then > > > mouseenter, does not reach cursor before mouseleave event fires, then > > > gets mouseenter again and keeps closing/opening/closing/opening/ > > > closing/opening forever. > > > > > So what i want to know, if it is possible to insert some kind of > > > delays or doublechecks into the system to stop this kind of stuff from > > > happening or should i just tell everybody to slow down their mouse > > > movement? > > > > > Alan > > > > -- > > Gustavo Salome Silva > -- Gustavo Salome Silva