jQuery 无限级菜单的简单实例


Posted in Javascript onFebruary 21, 2014

我将CSS完全分离出来用jQuery附加式样,就是为了多级染色,并且生成目录树和控制式样也很容易,生成时也不需要考虑式样。数据表建议用事先Order排序的方式,不要读取数据的时候才分级排序,这样性能会较佳。

我把它做成了个.Net的控件,作为轻量级的无限目录树,还是相当好用的。只是还不完善,我先慢慢修改,等差不多了再发布出来。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>jQuery 无限级菜单</title>
    <style type="text/css">
    #menu a {
        color:#fff;
    }
    #menu div {
        /* text-align:center; */
    }
    #menu div a {
        padding-left:20px;
    }
    #menu div.root {
        display:block;
    }
    .list { background:url(list.gif) no-repeat 6px 6px; }
    </style>
    <script type="text/javascript" language="javascript" src="jquery-1.2.3.min.js"></script>
    <script type="text/javascript" language="javascript">
    $(function(){
        //颜色列表,如果想支持无限级,最好自动生成颜色列表,不过我的配色一项很差,用生成的就更惨不忍睹了……
        _cor = ['#003366', '#0066CC', '#3399FF', '#990000', '#CC0000', '#FF3300', '#FF9900', '#FFCC66', '#FFFFFF'];
        //初始化类
        (function Init(i,obj){
            i++;
            //查找子节点
            _obj = obj.children('div');
            //若有子节点,则增加一个专有式样
            if (_obj.length > 0)
                obj.addClass('list');
            $.each(_obj, function(j,o){
                //若是子目录则隐藏
                if (i > 0)
                    $(o).hide();
                //根据目录级数查找颜色字典上背景色,可改为图片什么的。
                $(o).css('background-color',_cor[i]);
                //查找子目录
                Init(i,$(o));
            });
        })(-1,$('#menu'));
    });
    //跳转链接
    function GotoURL(obj) {
        //若链接最末一位不是符号“#”则跳转链接,因为取href得到链接绝对路径,所以只能取最后一位,其实可以传值判断或生成目录树时不产生onclick都是可以的
        if (obj.href.substring(obj.href.length - 1, obj.href.length) != "#") return true;
        //拉出和缩进的特效
        $.each($(obj).parent().children('div'), function(i,o){
            $(o).slideToggle('slow');
        });
        return false;
    }
    </script>
</head>
<body>
    <div id="menu">
        <div> <a href="#" onclick="return GotoURL(this)">第一级</a> </div>
        <div> <a href="#" onclick="return GotoURL(this)">第一级</a>
            <div> <a href="#" onclick="return GotoURL(this)">第二级</a> </div>
            <div> <a href="#" onclick="return GotoURL(this)">第二级</a>
                <div> <a href="#" onclick="return GotoURL(this)">第三级</a>
                    <div> <a href="#" onclick="return GotoURL(this)">第四级</a> </div>
                    <div> <a href="#" onclick="return GotoURL(this)">第四级</a> </div>
                </div>
                <div> <a href="#" onclick="return GotoURL(this)">第三级</a>
                    <div> <a href="#" onclick="return GotoURL(this)">第四级</a> </div>
                    <div> <a href="#" onclick="return GotoURL(this)">第四级</a>
                        <div> <a href="#" onclick="return GotoURL(this)">第五级</a> </div>
                        <div> <a href="#" onclick="return GotoURL(this)">第五级</a> </div>
                        <div> <a href="#" onclick="return GotoURL(this)">第五级</a>
                            <div> <a href="#" onclick="return GotoURL(this)">第六级</a> </div>
                            <div> <a href="#" onclick="return GotoURL(this)">第六级</a> </div>
                        </div>
                    </div>
                </div>
            </div>
            <div> <a href="#" onclick="return GotoURL(this)">第二级</a> </div>
        </div>
        <div> <a href="#" onclick="return GotoURL(this)">第一级</a>
            <div> <a href="#" onclick="return GotoURL(this)">第二级</a> </div>
            <div> <a href="#" onclick="return GotoURL(this)">第二级</a> </div>
            <div> <a href="#" onclick="return GotoURL(this)">第二级</a>
                <div> <a href="#" onclick="return GotoURL(this)">第三级</a>
                    <div> <a href="#" onclick="return GotoURL(this)">第四级</a> </div>
                    <div> <a href="#" onclick="return GotoURL(this)">第四级</a> </div>
                </div>
                <div> <a href="#" onclick="return GotoURL(this)">第三级</a>
                    <div> <a href="#" onclick="return GotoURL(this)">第四级</a> </div>
                    <div> <a href="#" onclick="return GotoURL(this)">第四级</a>
                        <div> <a href="#" onclick="return GotoURL(this)">第五级</a> </div>
                        <div> <a href="#" onclick="return GotoURL(this)">第五级</a> </div>
                        <div> <a href="#" onclick="return GotoURL(this)">第五级</a>
                            <div> <a href="#" onclick="return GotoURL(this)">第六级</a> </div>
                            <div> <a href="#" onclick="return GotoURL(this)">第六级</a> </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>
Javascript 相关文章推荐
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
Jun 19 Javascript
javascript轻量级模板引擎juicer使用指南
Jun 22 Javascript
javascript模拟实现ajax加载框实例
Oct 15 Javascript
JQuery中$.each 和$(selector).each()的区别详解
Mar 13 Javascript
JS+DIV实现鼠标划过切换层效果的方法
May 25 Javascript
全面理解JavaScript中的闭包
May 12 Javascript
浅析JavaScript中的对象类型Object
May 26 Javascript
JS求解三元一次方程组值的方法
Jan 03 Javascript
echarts学习笔记之图表自适应问题详解
Nov 22 Javascript
node.js中path路径模块的使用方法实例分析
Feb 13 Javascript
js实现表格数据搜索
Aug 09 Javascript
vue 实现click同时传入事件对象和自定义参数
Jan 29 Vue.js
js控制table合并具体实现
Feb 20 #Javascript
js文件Cookie存取值示例代码
Feb 20 #Javascript
js中array的sort()方法使用介绍
Feb 20 #Javascript
javascript生成随机大小写字母的方法
Feb 20 #Javascript
将json对象转换为字符串的方法
Feb 20 #Javascript
javascript实现json页面分页实例代码
Feb 20 #Javascript
Jquery中的层次选择器与find()的区别示例介绍
Feb 20 #Javascript
You might like
PHP $_SERVER详解
2009/01/16 PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
2012/07/01 PHP
php中3des加密代码(完全与.net中的兼容)
2012/08/02 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
详解PHP实现支付宝小程序用户授权的工具类
2018/12/25 PHP
node在两个div之间移动,用ztree实现
2013/03/06 Javascript
jquery ajax实现下拉框三级无刷新联动,且保存保持选中值状态
2013/10/29 Javascript
javascript操纵OGNL标签示例代码
2014/06/16 Javascript
JavaScript基础知识及常用方法总结
2016/01/10 Javascript
第五篇Bootstrap 排版
2016/06/21 Javascript
浅谈$_FILES数组为空的原因
2017/02/16 Javascript
利用Javascript获取选择文本所在的句子详解
2017/12/03 Javascript
微信小程序canvas实现刮刮乐效果
2018/07/09 Javascript
vue在手机中通过本机IP地址访问webApp的方法
2018/08/15 Javascript
koa源码中promise的解读
2018/11/13 Javascript
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
JS实现点击li标签弹出对应的索引功能【案例】
2019/02/18 Javascript
浅入深出Vue之自动化路由
2019/08/06 Javascript
微信小程序swiper左右扩展各显示一半代码实例
2019/12/05 Javascript
Typescript3.9 常用新特性一览(推荐)
2020/05/14 Javascript
使用python对文件中的数值进行累加的实例
2018/11/28 Python
使用Django连接Mysql数据库步骤
2019/01/15 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
Python Gitlab Api 使用方法
2019/08/28 Python
Python操作redis和mongoDB的方法
2019/12/19 Python
pycharm 实现本地写代码,服务器运行的操作
2020/06/08 Python
Python如何将模块打包并发布
2020/08/30 Python
python实现录音功能(可随时停止录音)
2020/10/26 Python
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
捐款倡议书
2014/04/14 职场文书
个人收入证明范本
2014/09/18 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
golang日志包logger的用法详解
2021/05/05 Golang
Win11怎样将锁屏账户头像图片改成动画视频
2021/11/21 数码科技
Python+Pillow+Pytesseract实现验证码识别
2022/05/11 Python