css,
ul > li > ul {
display:none;
}
ul > li:hover ul{
display: block;
}
.showme {
display: block;
}
首先,这看起来很好-我可以切换目标兄弟项,但为什么在任何父项进行第一次切换后,当我在当前父项单击/切换时,有时必须单击两次才能隐藏其他兄弟项?
如果我没有解释清楚,这里是实时站点,
http://lauthiamkok.net/tmp/jquery/toggle/
非常感谢。
推荐答案
不是以错误状态结束的.toggle()
函数,您只需使用正常的click
函数并使用.toggleClass()
,如下所示:
$(this).click(function (){
var myUL = $(this).siblings(".selected").toggleClass("showme");
$("ul").not(myUL).removeClass("showme");
});
You can give it a try here,这将对同级元素执行.toggleClass()
,然后通过使用.not()
筛选掉同级元素来查找所有其他<ul>
元素。
这稍微清理了一些,使它更容易,它解决的主要问题是不排除.removeClass()
中的同级,这就是导致您以前的.toggle()
状态不正确的原因。