我正在http://www.variied.com/market/men/工作。我尝试在侧边栏上创建一个切换下拉菜单,当有人点击" Tops"边栏上的链接,然后切换要显示的子菜单中的内容。这是我当前的代码
<style>
ul.category ul.sub-menu ul.sub-menu li a{
display:none
}
</style>
<script>
jQuery(document).ready(function() {
jQuery("#menu-item-746").click(function() {
jQuery(this).next("ul.category ul.sub-menu ul.sub-menu li a").toggle();
return false;
});
});
</script>
答案 0 :(得分:-1)
这个小提琴有几个问题:
#submenu
的课程,它应该只是submenu
event
,因此您可以使用e.preventDefault()
(除非您更喜欢return false
)ul
设置为display: none
,然后切换,我会使用slideToggle
获得更好的效果。<强> JS 强>
$("#menu-item-746").click(function(e) {
e.preventDefault();
$(this).next("ul").slideToggle();
});
<强> HTML 强>
<ul class="submenu">
<li id="menu-item-746"><a href="#">Test Item</a></li>
<ul>
<li><a href="#">Test1</a></li>
<li><a href="#">Test2</a></li>
</ul>
</ul>
<强> CSS 强>
.submenu ul{
display: none;
}
<强>更新强>
我在您的网站上查看了您的HTML,看来您的ul
subnav是您li
的孩子而不是兄弟姐妹(这是您小提琴中的兄弟姐妹)。试试这个:
$(this).find("ul").slideToggle();
同样,根据您提供的代码,您定位的是id
,这意味着这只适用于该1个元素。似乎带有subnav的那个有一个名为.menu-item-has-children
的类,所以我会将其作为目标,如下所示:
$(".sub-menu .menu-item-has-children").click(function(e) {
e.preventDefault();
$(this).find("ul.sub-menu").slideToggle();
});
NEW UPDATE
然后定位a
,然后:
$(".sub-menu .menu-item-has-children").on("click", " a:first", function(e) {
e.preventDefault();
$(this).siblings("ul.sub-menu").slideToggle();
});