Javascript 单击链接时停止幻灯片

Javascript 单击链接时停止幻灯片,javascript,jquery,slidetoggle,Javascript,Jquery,Slidetoggle,所以我有一个垂直菜单,当你点击父项来显示子元素时,它会向下滑动,当你点击一个子元素时,它会带你到链接 我的问题是,当你点击链接时,整个子菜单会因为其上的slideToggle功能而向上滑动-只有点击链接时,我如何才能阻止向上滑动 我的菜单: <ul id="menu-top" class="menu"> <li class="has-submenu"> <a href="http://mywebsite.com/portfolio/">

所以我有一个垂直菜单,当你点击父项来显示子元素时,它会向下滑动,当你点击一个子元素时,它会带你到链接

我的问题是,当你点击链接时,整个子菜单会因为其上的
slideToggle
功能而向上滑动-只有点击链接时,我如何才能阻止向上滑动

我的菜单:

<ul id="menu-top" class="menu">
    <li class="has-submenu">
        <a href="http://mywebsite.com/portfolio/">Portfolio</a>
        <ul class="sub-menu" style="display: none;">
            <li class="menu-item">
                <a href="http://mywebsite.com/book-i/">Book I</a>
            </li>
        </ul>
    </li>
    <li class="has-submenu">
        <a href="http://mywebsite.com/retouching/">Headshots</a>
        <ul class="sub-menu" style="display: none;">
            <li class="menu-item">
                <a href="http://mywebsite.com/men/">Men</a>
            </li>
        </ul>
    </li>
    <li class="regular-link">
        <a href="http://mywebsite.com/personal-work/">Personal Work</a>
    </li>
</ul>
jQuery('#menu-top').children().click(function(e){
    var $next = jQuery(this).find('.sub-menu');
    var $child =('.active-menu');
    $next.stop().slideToggle('slow').toggleClass('active-menu'); 
     jQuery(".sub-menu").not($next, $child).slideUp('slow').removeClass('active-menu');

});
jQuery('.has-submenu > a').click(function(e){
e.preventDefault();
});

使用
stopPropagation
防止事件冒泡

jQuery('.submenu a').click(function(e){

    e.stopPropagation();

});

要在单击ul的子链接时阻止slideToggle菜单向上滑动,可以在链接本身的单击事件上使用jquery函数
stopPropogation()

$(".shop-by-dept ul li a").click(function(e){
    e.stopPropagation();
});
这将防止
slideToggle()
操作在浏览器加载下一页时向上滑动菜单