多功能jQuery树插件zTree实现权限列表简单实例


Posted in Javascript onJuly 12, 2016

zTree 是一个依靠jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。

zTree官网
zTreeAPI下载链接 

页面主要引入一下几个文件: 

<link type="text/css" rel="stylesheet" href="zTree/zTreeStyle.css" />
<script type="text/javascript" src="js/jquery.ztree.core-3.5.js"></script>
<script type="text/javascript" src="js/jquery.ztree.excheck-3.5.js"></script>

html页面: 

<div class="edit_content">
      <div class="qxlb">
        <div class="add_title"> 
          <span>权限列表</span>
        </div>
        <div class="qxlb_content">
        <ul id="tree" class="ztree"></ul>
        </div>
      </div>
 </div>

核心js:

<SCRIPT type="text/javascript">
var zTree;
//创建树型结构
function createTree() {
  var setting = {
    check:{
      enable:true
    },
    view: {
      dblClickExpand: true,
      expandSpeed: ""
    },
    //异步加载
    async: {
      enable: true,//设置是否异步加载
      url:"<%=path%>/role/getResourcesList.do", //设置异步获取节点的 URL 地址
      otherParam: [ "roleId", '${updateRole.id}']
      
    },
    
    //这个data里面的pIdKey,idKey,name等等之类的都是对应后台查出的字段名字,
     在sql中写好或者在拼接json的时候先拼接好,前太接收的时候只要对应一直就可以了
    data: {
      simpleData: {
        enable: true,
        pIdKey: "PARENTID",
        idKey: "ID"
      },
        key: {
          checked: "CHECKED",
          name:"NAME"
        }
    },
    callback: {
     onAsyncSuccess: zTreeOnAsyncSuccess 
  } 
  };
  //初始化  
  zTree = $.fn.zTree.init($("#tree"), setting);  
  zTree.expandAll(true);
}
/* 异步加载无法展开tree 默认展开一级菜单 */
var firstAsyncSuccessFlag = 0;
function zTreeOnAsyncSuccess(event, treeId, msg) { 
if (firstAsyncSuccessFlag == 0) { 
     try { 
         //调用默认展开第一个结点 
         var selectedNode = zTree.getSelectedNodes(); 
         var nodes = zTree.getNodes(); 
         zTree.expandNode(nodes[0], true); 
         var childNodes = zTree.transformToArray(nodes[0]); 
         zTree.expandNode(childNodes[1], true); 
         zTree.selectNode(childNodes[1]); 
         var childNodes1 = zTree.transformToArray(childNodes[1]); 
         zTree.checkNode(childNodes1[1], true, true); 
         firstAsyncSuccessFlag = 1; 
      } catch (err) { 
      
      } 
   } 
}

$(function(){
  //页面加载完成创建树
  createTree();  
});

function submitRole(){
  //获取选中的节点,传到后台
  var nodes = zTree.getCheckedNodes();
  var ids = [];
  for(var i=0,l=nodes.length;i<l;i++){
    ids[ids.length] = nodes[i].ID;
  }
  //var _resourcesIds=ids.join(",");
  document.getElementById("hidden_resourceList").value=ids.join(",");
      
  //$("#resourcesRoleListForm").submit();
}
</SCRIPT>

 其中数据通过后台递归查询实现,以json的形式传到前台,进行接收。更多的内容可以参考API,里面的例子很详细。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 编写规范
Mar 03 Javascript
编写高性能的JavaScript 脚本的加载与执行
Apr 19 Javascript
基于jQuery的js分页代码
Jun 10 Javascript
json数据处理技巧(字段带空格、增加字段、排序等等)
Jun 14 Javascript
非常好用的JsonToString 方法 简单实例
Jul 18 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
Dec 08 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
Dec 10 Javascript
纯css下拉菜单 无需js
Aug 15 Javascript
JavaScript奇技淫巧44招【实用】
Dec 11 Javascript
js获取json中key所对应的value值的简单方法
Jun 17 Javascript
layui实现数据表格table分页功能(ajax异步)
Jul 27 Javascript
JavaScript实现PC端横向轮播图
Feb 07 Javascript
基于BootStrap环境写jQuery tabs插件
Jul 12 #Javascript
Angular 路由route实例代码
Jul 12 #Javascript
javascript中获取class的简单实现
Jul 12 #Javascript
springMVC结合AjaxForm上传文件
Jul 12 #Javascript
require简单实现单页应用程序(SPA)
Jul 12 #Javascript
require.js配合插件text.js实现最简单的单页应用程序
Jul 12 #Javascript
javascript中Date对象应用之简易日历实现
Jul 12 #Javascript
You might like
计算一段日期内的周末天数的php代码(星期六,星期日总和)
2009/11/12 PHP
浅析PHP中Collection 类的设计
2013/06/21 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
PHP5各个版本的新功能和新特性总结
2014/03/16 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
2016/01/07 PHP
如何正确配置Nginx + PHP
2016/07/15 PHP
JS将秒换成时分秒实现代码
2013/09/03 Javascript
JavaScript 垃圾回收机制分析
2013/10/10 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
2013/11/01 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
JS实现带缓冲效果打开、关闭、移动一个层的方法
2015/05/09 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
2015/09/10 Javascript
jQuery mobile 移动web(4)
2015/12/20 Javascript
微信js-sdk上传与下载图片接口用法示例
2016/10/12 Javascript
可输入文字查找ajax下拉框控件 ComBox的实现方法
2016/10/25 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
2017/06/04 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
2018/09/27 Javascript
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
2019/04/04 Javascript
详解Vue、element-ui、axios实现省市区三级联动
2019/05/07 Javascript
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
2019/11/07 Javascript
vant自定义二级菜单操作
2020/11/02 Javascript
[39:46]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第二场 11.25
2020/11/25 DOTA
Linux下Python获取IP地址的代码
2014/11/30 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
Django models.py应用实现过程详解
2019/07/29 Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
2020/03/07 Python
Python如何使用paramiko模块连接linux
2020/03/18 Python
python小技巧——将变量保存在本地及读取
2020/11/13 Python
python绘制高斯曲线
2021/02/19 Python
优秀毕业自我鉴定
2014/02/15 职场文书
《记承天寺夜游》教学反思
2014/02/16 职场文书
煤矿班组长竞聘书
2014/03/31 职场文书
公务员考察材料范文
2014/12/23 职场文书
行政二审代理词
2015/05/25 职场文书