2013-02-12 96 views
0

(抱歉,但该代码段是不工作在这里)的。不选择孩子()

<ul> 
    <li><a href="#" title="" class="active">d</a> 
    <ul> 
     <li><a href="#" title="">d</a></li> 
     <li><a href="#" title="">d</a></li> 
    </ul> 
    </li> 
    ... 
</ul> 

$('#menu > ul > li ul').click(function (e) { 
    e.stopPropagation(); 
}).not(this.parent().find('a.active')).hide(); 

看看的。不是()语句。当父母李的兄弟姐妹活跃时,我试图让孩子UL显示。我尝试了很多方法(兄弟姐妹,父母,发现,hasclass,..)但他们都没有工作。可能因为我没有以正确的方式使用选择器..

谢谢!

+0

我有一些问题,格式化代码;我不知道为什么,但我的道歉。 – 2013-02-12 14:21:56

回答

0

你可以用纯CSS做到这一点:

.active + ul { 
    display: block; 
} 
a + ul { 
    display: none; 
} 

但如果你想jQuery的,则:

$('#menu > ul > li ul').click(function (e) { 
    e.stopPropagation(); 
}).hide(); 
$('#menu > ul > li').has('.active').find('ul').show(); 

是一个更好的选择

+0

谢谢。我试图用一行来做,但你的工作当然是。 – 2013-02-12 14:30:17