javascript - jquery二级下拉菜单的问题

查看:75
本文介绍了javascript - jquery二级下拉菜单的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

在使用jquery制作二级下拉菜单的时候,鼠标滑过就可以正常显示,,但是在鼠标多次划过的时候,就出现了二级菜单不断地显示隐藏,,反复多次。。请问怎样才可以鼠标滑出时二级菜单收回后,就不再显示了呢?
源代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
        *{
            margin: 0;
            padding:0;
        }
            ul{
                list-style-type:none ;
            }
            a{
                display: block;
            }
            h3 a{
                display:block;
                font-family: "微软雅黑";
                font-size: 16px;
                text-decoration: none;
                color: #fff;
                background: #F66B5B;
                width:100px;
                height: 30px;
                text-align: center;
                line-height: 30px;
            }
            ul li li{
                width:100px;
                background:#EAEAEA;
                border-bottom: 1px solid #fff;
                text-align: center;
                height: 25px;
                line-height: 25px;
                
            }
            .lf{
                float:left;
                margin-right: 1px;
            }
            .uh{
                display: none;
            }
            a:hover{
                background: #ccc;
            }
        </style>
        <script src="js/jquery-1.11.0.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                $(".lf").mouseenter(function(event){
                    $(this).children("ul").slideDown();
                    return false;
                });
                $(".lf").mouseleave(function(event){
                    $(this).children("ul").slideUp();
                return false;
                });
            })
        </script>
    </head>
    <body>
        <ul>
            <li class="lf">
                <h3><a href="#">首页</a></h3>
                <ul class="uh">
                    <li><a href="#">内容1</a></li>
                    <li><a href="#">内容2</a></li>
                    <li><a href="#">内容3</a></li>
                </ul>
            </li>
            <li class="lf">
                <h3><a href="#">首页</a></h3>
                <ul class="uh">
                    <li><a href="#">内容1</a></li>
                    <li><a href="#">内容2</a></li>
                    <li><a href="#">内容3</a></li>
                </ul>
            </li>
            <li class="lf">
                <h3><a href="#">首页</a></h3>
                <ul class="uh">
                    <li><a href="#">内容1</a></li>
                    <li><a href="#">内容2</a></li>
                    <li><a href="#">内容3</a></li>
                </ul>
            </li>
            <li class="lf">
                <h3><a href="#">首页</a></h3>
                <ul class="uh">
                    <li><a href="#">内容1</a></li>
                    <li><a href="#">内容2</a></li>
                    <li><a href="#">内容3</a></li>
                </ul>
            </li>
        </ul>
    </body>
</html>

解决方案

其实不推荐用.slideDown()和.slideUp(),用css3实现更好- -特别是手机上。
但是楼主一定要这么搞的话
楼主的主要问题是:sliderDown和sliderUp都是动画,鼠标每次经过就添加一个动画队列,当鼠标无数次经过。。。就要等动画全部播放完。。就看见下拉菜单不停伸缩是这样吧?

$(this).children("ul").stop(true,false).slideDown(200);

改这样就行了- -防止动画没播放完持续播放

这篇关于javascript - jquery二级下拉菜单的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆