Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 切换问题-单击时跳到页面顶部_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 切换问题-单击时跳到页面顶部

Javascript 切换问题-单击时跳到页面顶部,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有这样一个切换函数: $('ul.internal-nav-list li ').on('click', function () { $(this).find('.internal-sub-list li ').toggle(); 问题是,当您单击切换子菜单时,页面会跳到顶部。所以我试着用 $('ul.internal-nav-list li ').on('click', function (e) { $(this).find('.internal-sub-l

我有这样一个切换函数:

$('ul.internal-nav-list li ').on('click', function () {
        $(this).find('.internal-sub-list li ').toggle();
问题是,当您单击切换子菜单时,页面会跳到顶部。所以我试着用

$('ul.internal-nav-list li ').on('click', function (e) {
        $(this).find('.internal-sub-list li ').toggle();
            e.preventDefault();
这解决了问题,但是子菜单的链接不起作用。 有人知道解决这个问题的方法吗

更新

这是html

<ul class="internal-nav-list">
                        <li><a href="#">applications</a>
                            <ul class="internal-sub-list">
                                <li><a href="../sos.aspx">Structures</a></li>
                                <li><a href="../tanks.aspx">Containment Areas</a></li>
                                <li><a href="../pumps.aspx">Pumps</a></li>
                                <li><a href="../hex.aspx">Heat Exchangers</a></li>  
                            </ul> 
                        </li>   

也许有更好的方法,但如果没有HTML,就很难帮助您。但您可以检查以确保它不是正在单击的锚

if (!$(e.target).is(".internal-sub-list a")) {
    e.preventDefault();
}
在不需要是活动链接的锚链接上添加e.preventDefault()(我相信在您的li中,您还有一个a href=“#”元素)

作为一个全局修复程序,您可以有如下功能:

$('a[href=“#”]”)。在('click',函数(e)上{
e、 预防默认值();

});你的HTML是什么?更新了问题以包含HTML