zoukankan      html  css  js  c++  java
  • Mustache应用——渲染二级菜单

    一、菜单的样式

    如上图所示,菜单一共两级。一级菜单的父结点都为0,二级菜单的父结点是前结点的code。

    code:为每一个结点独一无二的标识,也可以认为是ID。

    二、菜单的数据结构

    编写菜单的结构,采用数组形式,每一个结点都为一个对象

     var data = [
        {
            code: "1",
            parentCode: "0",
            name: "水果"
        },
        {
            code: "2",
            parentCode: "1",
            name: "苹果"
        },
        {
            code: "3",
            parentCode: "1",
            name: "桔子"
        },
        {
            code: "4",
            parentCode: "1",
            name: "香蕉"
        },
        {
            code: "5",
            parentCode: "0",
            name: "动物"
        },
        {
            code: "6",
            parentCode: "5",
            name: "老虎"
        },
        {
            code: "7",
            parentCode: "5",
            name: "熊猫"
        },
        {
            code: "8",
            parentCode: "5",
            name: "狗"
        },
        {
            code: "33",
            parentCode: "0",
            name: "植物"
        }
    ];
    $(function () {
        init();
        function render(e, f, g) {
            //e:模板
            //f:节点code
            //g:节点
            var h = [];
            if ($.each(data, function (a, b) {
                b.parentCode == f && h.push(b)
            }), h.length != 0) {
                var j = Mustache.render(e, { subjects: h });
                g.append(j);
            }
        }
        function treeLevel1Click() {
            var e = $(this).find("ul");
            var tree_level_leaf = '<ul class="ul-leaf">{{#subjects}}<li class="children children-lv2" id="subject_{{code}}"><a class="lv2-title" href="javascript:void(0);"><span class="checkbox"></span><span class="lv2-text">{{name}}</span><span class="help"></span></a><div class="lv2-info"></div></li>{{/subjects}}</ul>';
            e.length > 0 ? (e.toggle()) : render(tree_level_leaf, this.id.substr(8), $(this));
            $(this).addClass("active");
        }
        function init()
        {
            var c = $("#subjectTree")
            var g = $(".classify-children");
            var i = '{{#subjects}}<li class="children children-lv1" id="subject_{{code}}"><a class="lv1-title" href="javascript:void(0);">{{name}}<span class="triangle-down"></span></a></li>{{/subjects}}';
            render(i, 0, g);
            c.delegate(".children-lv1", "click", treeLevel1Click);
        }
    
    });
  • 相关阅读:
    pscp 从win10远程传输文件到centos7,多个虚拟机之间传文件
    Spring Aop中四个重要概念,切点,切面,连接点,通知
    查看Java的汇编指令
    Spring集成GuavaCache实现本地缓存
    RocketMq消息 demo
    使用axis1.4生成webservice的客户端代码
    oracle ORA-00060死锁查询、表空间扩容
    mysql 1449 : The user specified as a definer ('usertest'@'%') does not exist 解决方法 (grant 授予权限)
    软件安装
    动态雪花飘落
  • 原文地址:https://www.cnblogs.com/tinaluo/p/7291411.html
Copyright © 2011-2022 走看看