我有一个下拉菜单,点击激活 - 没问题。 当你把鼠标移开它关闭 - 没问题。 当你点击一个菜单项时,我也希望它关闭 - 问题。
单击关闭时,它会关闭,但是一旦移动鼠标,它就会重新切换隐藏的类,可能会与鼠标输出发生冲突。
我很高兴jquery请清楚解释。
“视觉上隐藏”这个类只是可见性:隐藏。
$body.on('click', 'a.user', function(e){
$('ul.user-links').toggleClass('visuallyhidden');
});
$body.on('click', 'ul.user-links', function(e){
$('.user-links').toggleClass('visuallyhidden');
});
$body.on('mouseout', 'ul.user-links', function(e) {
if($(e.toElement).parents('ul.user-links').length < 1) {
$('ul.user-links').toggleClass('visuallyhidden');
}
});
答案 0 :(得分:0)
toggleClass()
的事实引起的;当您click
时菜单实际显示toggleClass()
,但当您再次mouseout()
toggleClass()
时。尝试在mouseout
上应用控件
if($('ul.userl-links').hasClass('visuallyhidden')){
..
}
else { }
使用addClass()
和removeClass()
代替toggleClass()
如果你做了一个小提琴,我会编辑问题以便更好地回答。