我有一个很难重现的问题,
$( document ).ready(function() {
var slideOptions = {
duration: 500,
easing: 'linear'
};
$( 'li.navtitle' ).mouseenter(function() {
$( this ).next().slideDown();
return false;
});
$( 'ul.navunit' ).mouseleave(function() {
$( this ).find( 'li.navcontent' ).delay(800).slideUp();
return false;
});
});
这是HTML:
<ul id="navigation">
<li class="navtop">
<ul class="navunit">
<li class="navtitle unselectable" unselectable="on">TITLE</li>
<li class="navcontent"><p class="textcontent">CONTENT HERE</li>
</ul>
</li>
<!-- Some more navtop/navunits... -->
</ul>
如上所述,大约50%的时间都可以使用。但是,在许多情况下,当鼠标位于navunit ul内时,navcontent li将会滑动()。
任何人都知道我做错了什么?
答案 0 :(得分:1)
您似乎需要在动画中添加stop()
。 JS代码如下所示,但这里是JSFiddle的链接,以便在行动http://jsfiddle.net/MDpxD/
$( document ).ready(function() {
var slideOptions = {
duration: 500,
easing: 'linear'
};
$( 'li.navtitle' ).mouseenter(function() {
$( this ).next().stop().slideDown();
return false;
});
$( 'ul.navunit' ).mouseleave(function() {
$( this ).find( 'li.navcontent' ).stop().delay(800).slideUp();
return false;
});
});
答案 1 :(得分:-1)
这可能是因为它触发了两次。尝试将此添加到函数的末尾:
$(this).unbind("mouseenter");
$(this).unbind("bind");
$(this).die();