我有一个脚本可以查看 无序列表 是否可见,如果是,它将添加一个类。我的问题是,它没有删除类(class)。可能是一个 noobie 错误,但帮助表示赞赏。
HTML:
<div class="nav">
<ul id="menu" class="menu">
<li id="menu0"><a href="/page/">IT Solutions</a>
<!-- dropdown -->
<ul>
<li><a href="#">dropdown link</a></li>
<li><a href="#">dropdown link</a></li>
<li><a href="#">dropdown link</a></li>
<li><a href="#">dropdown link</a></li>
<li><a href="#">dropdown link</a></li>
<li><a href="#">dropdown link</a></li>
</ul>
<!-- end dropdown -->
</li>
</div>
jQuery:
$('#menu li').live('mouseenter mouseleave', function(e) {
var element = $(this).find('ul');
if ((element).is(':visible')) {
$(this).addClass('hilight');
}
else {
$(this).removeClass('hilight');
}
});
我正在使用
live
,因为我必须使用旧版本的 jQuery。 最佳答案
这是你想要的?我猜你错过了 child ul 的切换,它导致 is:visible 总是正确的。
http://jsfiddle.net/LR7t9/
$('#menu > li').live('mouseenter mouseleave', function(e) {
var element = $(this).find('ul');
element.toggle();
$(this).toggleClass('hilight');
});
您可以使用 Hover 作为鼠标输入 mouseleave 的快捷方式:-
http://jsfiddle.net/J8tkK/
$('#menu > li').live('hover', function(e) {
var element = $(this).find('ul');
element.toggle();
$(this).toggleClass('hilight');
});
关于如果下拉菜单处于事件状态,jQuery 添加类,否则删除类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16302512/