經典的菜單顯示隱藏代碼



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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM