• 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);
        }
    
    });
  • 相关阅读:
    上传下载---上传
    分页中的难点
    分页的实现
    c3p0-config连接池
    判断
    客户关系管理增删改
    转发和重定向
    dbUtils结果集处理器
    加载配置文件.properties,及面向接口编程的DaoFactory
    jdbc链接数据库mysql
  • 原文地址:https://www.cnblogs.com/tinaluo/p/7291411.html
Copyright © 2020-2023  润新知