码迷,mamicode.com
首页 > 其他好文 > 详细

经典的菜单显示隐藏代码

时间:2016-06-13 11:29:46      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:


1.按钮上的click事件 : 控制菜单的显示隐藏,同时需要阻止事件冒泡到document;

2.document的 click事件: 让menu隐藏,这个功能是点击document任意一处,将菜单隐藏;

3.菜单的click事件:菜单本身并没有,是菜单内部的元素的click事件,需要阻止内部元素的click事件冒泡到document;

4.菜单内部list元素的 click事件:menu不能隐藏。

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>菜单隐藏显示</title>
    <style>
        .showBtn{
            cursor: pointer;
        }
        .menu {
            display: none;
            background-color: #fff;
            width: 100px;
        }
        .menu ul{
            list-style: none;
        }
        .menu a{
            display:block;
            text-decoration: none;
            margin: 10px 0;
        }
    </style>
</head>
<body>
<input type="button" class="showBtn" value="显示菜单">
<!-- 菜单默认不显示 -->
<div class="menu">
    <ul>
        <li><a href="">菜单一</a></li>
        <li><a href="">菜单二</a></li>
        <li><a href="">菜单三</a></li>
    </ul>
</div>
<script src="./jquery-1.11.3.min.js"></script>
<script>

    //点击“显示菜单”按钮时,显示菜单,并阻止事件冒泡
    $(".showBtn").click(function(e){
        if($(".showBtn").val()==隐藏菜单){
            $(".menu").hide();
            $(this).val(显示菜单);
        }else{
            $(".menu").show();
            $(this).val(隐藏菜单);
        }
        e.stopPropagation();//阻止按钮点击事件冒泡到document
    });

    //点击“菜单”内部时,阻止事件冒泡。(这样点击内部时,菜单不会关闭)
    $(".menu").click(function(e){
        e.stopPropagation();//阻止菜单内部点击事件冒泡到document
    });

    //监听整个document的点击事件,如果能收到事件(说明点击源既不是“显示菜单”按钮,也不来自菜单内部),就可以放心关闭菜单了
    $(document).click(function(){
        $(".menu").hide();
        $(".showBtn").val(显示菜单);
    });

</script>
</body>
</html>

 

经典的菜单显示隐藏代码

标签:

原文地址:http://www.cnblogs.com/sapho/p/5579754.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!