2009-10-05 96 views
0

我喜欢我的菜单在:hover上进行互动。菜单悬停状态丢失!

所以这里是代码:

$('#menu img').hover(function(){ 
    $(this).removeClass(); 
    $(this).addClass('menuon'); 
    return false; 
}, function(){ 
    $(this).removeClass(); 
    $(this).addClass('menuoff'); 
    return false; 
}); 

此代码工作正常,但副作用是当menuon状态已经结束,它失去它课堂,成为关。

关于你处理那个....我喜欢待在状态!

这里是the working page

回答

2

你可以做你想做的从悬停事件删除当前的菜单项:

$('#menu img:not(.menuon)').hover(
... 

但你和悬停风格混合当前菜单项的风格,我认为这对用户来说很混乱。

如果您仅将JavaScript悬停样式应用于JavaScript并添加currentMenu类来设置与menuon样式略有不同的当前菜单项,则可能会更好。

<img src="layout/menu_acceuil.jpg" class="currentMenu" /> 
<img src="layout/menu_pourquoi.jpg" /> 
... 
+0

我会想到的很好的解决方案! :-) – menardmam 2009-10-05 17:58:53

+0

很好的帮助,工作很好,谢谢!我今天学到了一些东西! – menardmam 2009-10-05 18:06:45

-1

像MEDER说,你需要指定类删除。我不会有一个关闭状态的替代课程。所有你需要的是:

$('#menu img').hover(function(){ 
    $(this).addClass('menuon'); 
    return false; 
}, function(){ 
    $(this).removeClass('menuon'); 
    return false; 
}); 
+1

不应该它没有指定类名称的工作? jQuery文档有一个例子:$(“p:eq(1)”)。removeClass(); http://docs.jquery.com/Attributes/removeClass – 2009-10-05 16:18:46

+0

显然这是正确的。 – 2009-10-05 16:26:23

+0

doest不行! – menardmam 2009-10-05 16:50:50

0

如果你检查dom,你会看到menuoff和menuon都被添加了。相反,你应该明确地删除类:

$('#menu img').hover(function(){ 
    $(this).removeClass('menuoff'); 
    $(this).addClass('menuon'); 
    return false; 
}, function(){ 
    $(this).removeClass('menuon'); 
    $(this).addClass('menuoff'); 
    return false; 
});