2010-03-29 88 views
2

jQuery脚本jQuery的问题mousenter和鼠标离开

$(document).ready(function(){ 

$("#allbox").bind("mouseenter",function(){ 

     $("#sslider").show("slide", { direction: "left" }, 1000); 
    }).bind("mouseleave",function(){ 
     $("#sslider").hide("slide", { direction: "left" }, 1000); 
     }); 
}); 

的html代码:

<div id="allbox" style="width:400px; height:100px; background-color:#CCCCCC"> 


mymenu 
<div id="sslider" style="display:none; background-color:#FFFFFF; padding:5px; width:155px;"> 
link1<br>link2<br>link3<br>link4... 
</div></div> 

我想要的结果,当鼠标移动到灰色框,使#sslider的滑动效果从左正确,并且当鼠标移出#sslider时可以反向播放。

问题是在Firefox中的问题在滑动动画结束之前,当鼠标滑过#slider时,脚本有问题。任何帮助

回答

0

你可以做到这一点,如果它适当地隐藏/可见它只会动画:

$(function(){ 
    $("#allbox").hover(function(){ 
     $("#sslider:hidden").show("slide", { direction: "left" }, 1000); 
    }, function(){ 
     $("#sslider:visible").hide("slide", { direction: "left" }, 1000); 
    }); 
});​ 

它使用.hover()(相当于mouseneter /鼠标离开)更简洁一点。主要的变化是选择器,它只会显示它是否隐藏,如果它是可见的,将隐藏,它会摆脱由左/右滑动引起的循环。 Here's a quick demo of it working