Jquery removeClass不处理.hide或.slideup
我不是jquery的高手,我需要一些帮助来解决我遇到的问题 我有这个剧本:Jquery removeClass不处理.hide或.slideup,jquery,Jquery,我不是jquery的高手,我需要一些帮助来解决我遇到的问题 我有这个剧本: <script> jQuery('.go_menu_tier').click(function(){ var id = jQuery(this).attr('data-id'); if(jQuery('.menu-'+id).is(":visible")){ jQuery('.m
<script>
jQuery('.go_menu_tier').click(function(){
var id = jQuery(this).attr('data-id');
if(jQuery('.menu-'+id).is(":visible")){
jQuery('.menu-'+id).slideUp();
jQuery(this).removeClass('activemenu');
}else{
jQuery('.menu-tier-2').hide();
jQuery('.menu-'+id).slideDown();
jQuery(this).addClass('activemenu');
}
return false;
});
</script>
基本上有一个自定义的wordpress菜单,它有几个带有下拉子菜单的菜单项。我所有的设置都是正确的,除了当我点击一个下拉菜单和另一个下拉菜单时,它不会显示+而不是-符号。如果我单击主菜单项向下滑动子菜单,然后再次单击它,css内容将正确地切换+和-。只有当一个子菜单打开,我单击另一个顶部菜单项时,以前打开的顶部菜单项不会切换回+而不是-符号
以下是HTML:
<div class="menu-tier-2 menu-8463"><ul><li><a href="/collections/t-shirt" target="">Tees</a></li><li><a href="/collections/shirts-tops" target="">Tops</a></li><li><a href="/collections/pants" target="">Pants</a></li><li><a href="/collections/hats" target="">Hats</a></li><li><a href="/collections/walkshorts" target="">Walkshorts</a></li><li><a href="/collections/boardshorts" target="">Boardshorts</a></li><li><a href="/collections/accessories" target="">Accessories</a></li><li><a href="/collections/jackets" target="">Jackets</a></li></ul><div style="clear: both;"></div></div><div class="menu-tier-2 menu-8477"><ul><li><a href="/rl14/about/" target="">About</a></li><li><a href="/rl14/fall-2014-look-book/" target="">Look Books</a></li><li><a href="/rl14/imalive/" target="">IM Alive</a></li><li><a href="#" target="">Instagram</a></li></ul><div style="clear: both;"></div></div><div class="menu-tier-2 menu-8481"><ul><li><a href="/rl14/contact/" target="">Contact</a></li><li><a href="/rl14/dealer-select/" target="">Dealers</a></li></ul><div style="clear: both;"></div></div>
您需要从以前的活动菜单中删除activemenu
类:
if(jQuery('.menu-'+id).is(":visible")){
jQuery('.menu-'+id).slideUp();
jQuery(this).removeClass('activemenu');
}else{
jQuery('.menu-tier-2').hide();
jQuery('.menu-'+id).slideDown();
jQuery('.activemenu').removeClass('activemenu');
jQuery(this).addClass('activemenu');
}
当你点击一个不同的菜单时,你会将
activemenu
类添加到这个菜单中,但你从未将它从旧菜单中删除。非常感谢Barmar,你帮我解开了一个4小时的谜团。干杯现在效果很好。
if(jQuery('.menu-'+id).is(":visible")){
jQuery('.menu-'+id).slideUp();
jQuery(this).removeClass('activemenu');
}else{
jQuery('.menu-tier-2').hide();
jQuery('.menu-'+id).slideDown();
jQuery('.activemenu').removeClass('activemenu');
jQuery(this).addClass('activemenu');
}