2011-10-06 70 views
0

我需要找到一种方式,只是显示h children李的孩子。jquery元素上悬停如果孩子有类,孩子做点什么

我有这个

$('.menu.horizontal li').hover(function(event) { 
         if(event.currentTarget === this) { 
          $(this).addClass('hover'); 
          if($(this).hasClass('pai') && $(this).hasClass('hover')) { 
           $(this).find('.nivel_1').css('display', 'block'); 
           $(this).find('li nivel_1').css('display', 'block'); 
          } else { 
           $('li nivel_1').css('display', 'none'); 
           $('.nivel_1').css('display', 'none'); 
           $(this).removeClass('hover'); 
          } 
         } 
        }); 

我悬停元素并检查类“派”,并显示.nivel_1,但如果我更.nivel_1他们都表现......所以我只需显示悬停元素的孩子。 我该怎么做?

由于

回答

1

使用hover() jQuery函数在用户悬停时向<li>添加一个类。然后你可以使用CSS来显示/隐藏子元素。

$('li').hover(
    function() { $(this).addClass('hover'); }, 
    function() { $(this).removeClass('hover'); } 
); 

然后用下面的CSS:

li *  { display: none; } 
li.hover * { display: block; } 
+0

不理解你的解决方案,对不起 – Pluda

+0

我现在明白了,太棒了,效果还不错,谢谢。不知道css中的*,和li一样,都是孩子,对吗?谢谢 – Pluda

+0

你好,你能看到这个http://www.brvr.net/menu/如何避免不使用图像悬停的顶部元素的背景没有长大。有没有什么CSS技巧来做到这一点?谢谢。 – Pluda

1
if(event.currentTarget === this) { 
    if($(this).hasClass('pai')) { 
     $(this).find('> .nivel_1').css('display', 'block'); 

     // This line doesn't actually make sense so I've commented it out 
     //$(this).find('li nivel_1').css('display', 'block'); 
    } 
} 

假设这个代码在悬停事件的mouseover部件被运行。

+0

您还需要隐藏的孩子悬停停止时。 –

+0

这是好的,但现在我有一个问题,它显示novel_1,但我们有类.pai的另一个锂,悬停他显示的一切,我编辑了初始代码 – Pluda

+0

我不知道我明白了什么你的意思是,但我已经猜到了,检查上面更新的代码 – Clive

相关问题