jquery - mouseout和click off?

时间:2013-05-10 10:14:37

标签: jquery mouseout

我有一个下拉菜单,点击激活 - 没问题。 当你把鼠标移开它关闭 - 没问题。 当你点击一个菜单项时,我也希望它关闭 - 问题。

单击关闭时,它会关闭,但是一旦移动鼠标,它就会重新切换隐藏的类,可能会与鼠标输出发生冲突。

我很高兴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');
      }
  });

1 个答案:

答案 0 :(得分:0)

嗯,我想这个问题是由你使用toggleClass()的事实引起的;当您click时菜单实际显示toggleClass(),但当您再次mouseout() toggleClass()时。尝试在mouseout上应用控件

if($('ul.userl-links').hasClass('visuallyhidden')){
 ..
}
 else { }

使用addClass()removeClass()代替toggleClass() 如果你做了一个小提琴,我会编辑问题以便更好地回答。