多功能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 相关文章推荐
javascript 循环读取JSON数据的代码
Jul 17 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
Feb 16 Javascript
js返回前一页刷新本页重载页面
Jul 29 Javascript
JavaScript移除数组内重复元素的方法
Mar 18 Javascript
JavaScript生成带有缩进的表格代码
Jun 15 Javascript
JavaScript关于提高网站性能的几点建议(一)
Jul 24 Javascript
jQuery仿京东商城楼梯式导航定位菜单
Jul 25 Javascript
jQuery弹出窗口打开链接的实现代码
Dec 24 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
Feb 09 Javascript
如何解决React官方脚手架不支持Less的问题(小结)
Sep 12 Javascript
jquery登录的异步验证操作示例
May 09 jQuery
用VsCode编辑TypeScript的实现方法
May 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初学入门
2006/11/19 PHP
php $_SERVER当前完整url的写法
2009/11/12 PHP
php懒人函数 自动添加数据
2011/06/28 PHP
PHP二维数组的去重问题解析
2011/07/17 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
2015/12/18 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
PHP使用SMTP邮件服务器发送邮件示例
2018/08/28 PHP
Laravel5.7框架安装与使用学习笔记图文详解
2019/04/02 PHP
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
JavaScript阻止浏览器返回按钮的方法
2015/03/18 Javascript
jQuery仿淘宝网产品品牌隐藏与显示效果
2015/09/01 Javascript
使用Javascript实现选择下拉菜单互移并排序
2016/02/23 Javascript
基于jquery实现无限级树形菜单
2016/03/22 Javascript
AngularJS过滤器详解及示例代码
2016/08/16 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
2017/04/20 Javascript
jQuery用户头像裁剪插件cropbox.js使用详解
2017/06/07 jQuery
JavaScript定义函数_动力节点Java学院整理
2017/06/27 Javascript
js实现登录注册框手机号和验证码校验(前端部分)
2017/09/28 Javascript
详解Chai.js断言库API中文文档
2018/01/31 Javascript
微信小程序自定义对话框弹出和隐藏动画
2018/07/19 Javascript
vue中动态select的使用方法示例
2019/10/28 Javascript
jQuery--遍历操作实例小结【后代、同胞及过滤】
2020/05/22 jQuery
详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结
2020/05/28 Javascript
Vue使用Three.js加载glTF模型的方法详解
2020/06/14 Javascript
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
2020/12/25 Vue.js
python操作ie登陆土豆网的方法
2015/05/09 Python
python求加权平均值的实例(附纯python写法)
2019/08/22 Python
python pygame实现滚动横版射击游戏城市之战
2019/11/25 Python
python Matplotlib基础--如何添加文本和标注
2021/01/26 Python
苏格兰在线威士忌商店:The Whisky Barrel
2019/05/07 全球购物
中文专业毕业生自荐信
2013/10/28 职场文书
中秋晚会策划方案
2014/06/12 职场文书
应届生自荐信
2014/06/30 职场文书
Vue通过懒加载提升页面响应速度
2021/05/10 Vue.js
本地搭建minio文件服务器(使用bat脚本启动)的方法
2022/07/15 Servers