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);
} });
Mustache应用——渲染二级菜单的更多相关文章
- Django--CRM--一级, 二级 菜单表
一. 一级菜单表 1. 首先要修改权限表的字段, 在权限表下面加上icon和 is_menu 的字段 2. 展示结果 # 我们既然想要动态生成一级菜单,那么就需要从数据库中拿出当前登录的用户的菜单表是 ...
- python 全栈开发,Day109(客户管理之动态"二级"菜单)
昨日内容回顾 1. 权限有几张表? 2. 简述权限流程? 3. 为什么要把权限放入session? 4. 静态文件和模块文件 5. 相关技术点 - orm查询 - 去空 - 去重 - 中间件 - in ...
- 巨蟒django之权限7:动态生成一级&&二级菜单
内容回顾: . 权限的控制 . 表结构设计 存权限的信息 用户表 - name 用户名 - pwd 密码 - roles 多对多 角色表 - name - permissions 多对多 权限表 - ...
- Django - 权限(3)- 动态显示二级菜单
一.动态显示二级菜单 上篇随笔中,我们实现了动态显示一级菜单,现在考虑这样一种情况,用户的菜单权限比较多,这个时候全部并列展现在左侧菜单就不合适了,所以,现在有这样一个需求,即把用户的菜单权限分类,划 ...
- django权限之二级菜单
遗漏知识点 1.构建表结构时,谁被关联谁就是主表,在层级删除的时候,删除子表的时候,主表不会被删除,反之删除主表的话,字表也会被删除, 使用related_name=None 反向查询,起名用的 ...
- django中动态生成二级菜单
一.动态显示二级菜单 1.修改权限表结构 (1)分析需求,要求左侧菜单如下显示: 客户管理: 客户列表 账单管理: 账单列表 (2)修改rbac下的models.py,修改后代码如下: from dj ...
- Excel——使用OFFSET、MATCH、COUNTA实现二级菜单
如图所示,接下来提供两种办法实现: 1.将A.B.C.D定义为名称NAME. 2.设置一级菜单单元格数据有效性为NAME. 3.设置二级菜单格数据有效为: =OFFSET($A$1,MATCH($A6 ...
- Django动态渲染多层菜单
为后续给菜单设置权限管理方便,通过给页面模版菜单动态渲染,通过数据菜单表进行匹配需要渲染的菜单 #Django表结构 class Menus(models.Model): name = models. ...
- Jquery垂直下拉二级菜单
自己做了一个基于Jquery 的垂直下拉二级菜单功能,直接看图: Html的代码如下: <!DOCTYPE html> <html> <head> <meta ...
随机推荐
- android和js互相调用
import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.o ...
- localstorage和vue结合使用2
html <template> <div class="hello"> <div class="page-top"> < ...
- mysql SQL 逻辑查询语句和执行顺序
关键字的执行优先级(重点) fromwheregroup byhavingselectdistinctorder bylimit 先创建两个表 CREATE TABLE table1 ( custom ...
- (转)Android开发之封装标题栏
文章转自 CoderAbsolom 的 http://blog.csdn.net/qq_14923661/article/details/52003447 写在前面: 标题栏这个部分,绝大多数App ...
- ParseCrontab类,解析时间规则
<?php /** * Created by PhpStorm. * User: ClownFish 187231450@qq.com * Date: 14-12-27 * Time: 上午11 ...
- python基础易错题
1.以下代码输入什么: class Person: a = 1 def __init__(self): pass def getAge(self): print(__name__) p = Perso ...
- swift 要点
swift 基本语法注意点 通常来说,编程语言教程中的第一个程序应该在屏幕上打印“Hello, world”.在 Swift 中,可以用一行代码实现 print("Hello, world! ...
- Java 线程池 Executor 框架
在Java中,可以通过new Thread 的方法来创建一个新的线程执行任务,但是线程的创建是非常耗时的,而且创建出来的新的线程都各自运行.缺乏统一的管理,这样的后果是可能导致创建过多的线程从而过度消 ...
- 设计服务类网站原型模板分享——Fortyseven
Fortyseven是一个设计服务网站,设计理念是帮助企业设计出赚钱的品牌和网站.该网站图文排版配色都很不错,很有欧美复古风,多采用大图结合文案排版. 本原型由国产Mockplus(原型工具)和iDo ...
- maven下载的jar相应pom文件下载不完整问题。
今天遇到一个奇葩问题: 同样的项目,我启动报错 : 某个class文件找不到.. 查找maven 依赖也的确没有找到 对应的jar 包. 查找同事项目,可以看到该class对应的 jar 包 是 lo ...