zoukankan      html  css  js  c++  java
  • js学习总结----多级菜单jquery版本

    具体代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            *{
                margin:0;
                padding:0;
                font-size:14px;
            }
            ul,li{
                list-style:none;
            }
            .box{
                margin:10px;
                padding:10px;
                300px;
                border:1px dashed #008000;
                /*渐进增强:首先设置一个纯色的背景,对于不兼容css3的浏览器来说会使用纯色,对于兼容的浏览器,我们在下面在额外的增加一些渐变色,这样会覆盖掉上面*/
                background:#ffe470;
                background:-webkit-linear-gradient(top left,#2b93d2,#fa5889,#cde074,#ffe470);
                background:-moz-linear-gradient(top left,#2b93d2,#fa5889,#cde074,#ffe470);
                background:-o-linear-gradient(top left,#2b93d2,#fa5889,#cde074,#ffe470);
                background:linear-gradient(top left,#2b93d2,#fa5889,#cde074,#ffe470);
            }
            .box li{
                position:relative;
                line-height:30px;
            }
            .box em{
                position:absolute;
                top:7px;
                left:0;
                16px;
                height:16px;
                background:url("img/icon.png") no-repeat -59px -28px;
                cursor:pointer;
    
            }
            .box span{
                display:block;
                padding-left:20px;
            }
            .box em.open{
                background-position:-42px -28px;
            }
            .box .two{
                margin-left:20px;
            }
            .box .three{
                margin-left:40px;
            }
            .box .four{
                margin-left:60px;
            }
            .box .two,.box .three,.box .four{
                display:none;
            }
        </style>
    </head>
    <body>
        <div class='box' id='box'>
            <ul>
                <li>
                    <em></em>
                    <span>第一级第一个</span>
                    <ul class='two'>
                        <li><span>第二级第一个</span></li>
                        <li>
                            <em></em><span>第二级第二个</span>
                            <ul class='three'>
                                <li><span>第三极第一个</span></li>
                                <li><span>第三极第二个</span></li>
                                <li>
                                    <em></em><span>第三极第三个</span>
                                    <ul class='four'>
                                        <li><span>第四级第一个</span></li>
                                        <li><span>第四级第二个</span></li>
                                        <li><span>第四级第三个</span></li>
                                    </ul>
                                </li>
                            </ul>
                        </li>
                        <li>
                            <em></em><span>第二级第三个</span>
                            <ul class='three'>
                                <li><span>第三级第一个</span></li>
                                <li><span>第三级第二个</span></li>
                                <li><span>第三级第三个</span></li>
                            </ul>
                        </li>
                    </ul>
                </li>
            </ul>
            <ul>
                <li>
                    <em></em>
                    <span>第一级第一个</span>
                    <ul class='two'>
                        <li><span>第二级第一个</span></li>
                        <li>
                            <em></em><span>第二级第二个</span>
                            <ul class='three'>
                                <li><span>第三极第一个</span></li>
                                <li><span>第三极第二个</span></li>
                                <li>
                                    <em></em><span>第三极第三个</span>
                                    <ul class='four'>
                                        <li><span>第四级第一个</span></li>
                                        <li><span>第四级第二个</span></li>
                                        <li><span>第四级第三个</span></li>
                                    </ul>
                                </li>
                            </ul>
                        </li>
                        <li>
                            <em></em><span>第二级第三个</span>
                            <ul class='three'>
                                <li><span>第三级第一个</span></li>
                                <li><span>第三级第二个</span></li>
                                <li><span>第三级第三个</span></li>
                            </ul>
                        </li>
                    </ul>
                </li>
            </ul>
        </div>
    
        <script>
            var $box = $('#box');
            $box.find("span").each(function(index,item){
                var $pre = $(this).prev();
                if($pre[0] && $pre[0].tagName.toLowerCase()==="em"){
                    $(this).css("cursor","pointer");
                }
            })
            //jQuery里面除了bind、unbind、on、off、click这些绑定事件的方式外,还提供了一种delegate(1.7版本以前用的是live)
    
            function fn(){
                var $par = $(this).parent();
                var $ul = $($par.children('ul')[0]);
                var $em = $($par.children('em')[0]);
                if($ul.length>0){
                    
                    $ul.toggle();
                    $em.toggleClass("open");
                    var isBlock = $ul.css('display')==="block"?true:false;
                    //如果当前的是收缩的话,我们需要把子子孙孙中所有的ul/em都隐藏和移除open样式
                    if(isBlock){
                        $par.find('ul').css("display","none");
                        $par.find("em").removeClass("open");
                    }
                }
            }
    
            $box.delegate('em',"click",fn)//给$box绑定点击事件,如果当前的事件源是em的话,我们执行fn
            $box.delegate('span',"click",fn)//给$box绑定点击事件,如果当前的事件源是em的话,我们执行fn
        </script>
    </body>
    </html>
  • 相关阅读:
    题解-FJOI2014 树的重心
    题解-CF1307G Cow and Exercise
    题解-SHOI2005 树的双中心

    【转载】SVN使用教程总结
    Fastcgi、CGI 是什么
    通过js或jq增加的代码,点击事件或其他一些事件不起作用时
    js闭包讲解
    PHP 程序员危机(转载)
    浏览器 User-Agent相关知识
  • 原文地址:https://www.cnblogs.com/diasa-fly/p/7232568.html
Copyright © 2011-2022 走看看