【发布时间】:2013-07-16 11:18:30
【问题描述】:
我想制作一个类似http://www.huffingtonpost.com 站点的下拉菜单。我尝试了鼠标悬停和鼠标悬停的自定义超时以喜欢该网站,但我不能。这是我的jQuery:
var navTimers = [];
$('.mcats > ul > li').each(function(){
$(this).hover(function(){
var $this = $( this );
var id = jQuery.data( this );
navTimers[id] = setTimeout( function() {
$this.addClass('hover');
navTimers[id] = "";
}, 250 );
}, function(){
var $this = $( this );
var id = jQuery.data( this );
if ( navTimers[id] != "" )
{
clearTimeout( navTimers[id] );
}
else
{
navTimers[id] = setTimeout( function() {
if(!$this.is(':hover'))
{
$this.removeClass('hover');
navTimers[id] = "";
}
}, 600 );
}
});
});
这里是演示http://jsfiddle.net/rebeen/FSKbL/
子菜单显示后,我在它上面连续使用鼠标。 Jquery 不适合我。
有什么寻求帮助的想法吗?非常感谢!
【问题讨论】:
-
如果您可以创建一个小的工作小提琴,那将很容易提供帮助。另外我认为你的逻辑必须颠倒......
-
我也同意你的逻辑应该颠倒......
-
谢谢,我更新了小提琴链接,请给我解决方案。再次感谢。
-
@BeenYoung.. 你认为你发布的小提琴中什么不起作用..
-
我在大约 3 年前做过类似的事情,但会打开和关闭课程。 jsfiddle.net/4uguq 每次新菜单悬停时,它都会清除当前放置的菜单/计时器,否则将使用超时。
标签: javascript jquery drop-down-menu timeout settimeout