多功能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 相关文章推荐
ImageFlow可鼠标控制图片滚动
Jan 30 Javascript
js实现select组件的选择输入过滤代码
Oct 14 Javascript
使用Sticker.js实现贴纸效果
Jan 28 Javascript
JavaScript原生对象之String对象的属性和方法详解
Mar 13 Javascript
SublimeText自带格式化代码功能之reindent
Dec 27 Javascript
Javascript中的async awai的用法
May 17 Javascript
详解基于vue-router的动态权限控制实现方案
Sep 28 Javascript
JavaScript解析及序列化JSON的方法实例分析
Jan 04 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
Sep 05 Javascript
vue获取form表单的值示例
Oct 29 Javascript
9种方法优化jQuery代码详解
Feb 04 jQuery
Vue性能优化的方法
Jul 30 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(1)
2006/10/09 PHP
使PHP自定义函数返回多个值
2006/11/26 PHP
php flush类输出缓冲剖析
2008/10/19 PHP
paypal即时到账php实现代码
2010/11/28 PHP
php curl模拟post提交数据示例
2013/12/31 PHP
PHP对文件夹递归执行chmod命令的方法
2015/06/19 PHP
php轻量级的性能分析工具xhprof的安装使用
2015/08/12 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
Zend Studio使用技巧两则
2016/04/01 PHP
PHP实现适用于文件内容操作的分页类
2016/06/15 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
实现变速回到顶部的JavaScript代码
2011/05/09 Javascript
非常有用的40款jQuery 插件推荐(系列二)
2011/12/25 Javascript
jquery三个关闭弹出层的小示例
2013/11/05 Javascript
jqGrid表格应用之新增与删除数据附源码下载
2015/12/02 Javascript
JavaScript中三个等号和两个等号的区别(== 和 ===)浅析
2016/09/22 Javascript
NODE.JS跨域问题的完美解决方案
2016/10/20 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
JS+CSS实现下拉刷新/上拉加载插件
2017/03/31 Javascript
基于jQuery实现的单行公告活动轮播效果
2017/08/23 jQuery
JS中图片压缩的方法小结
2017/11/14 Javascript
JQuery通过后台获取数据遍历到前台的方法
2018/08/13 jQuery
Node.js 如何利用异步提升任务处理速度
2019/01/07 Javascript
[36:33]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第二场
2018/04/04 DOTA
[01:13:46]iG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
分析Python中解析构建数据知识
2018/01/20 Python
python爬虫之模拟登陆csdn的实例代码
2018/05/18 Python
python 常见字符串与函数的用法详解
2018/11/23 Python
Python绘制组合图的示例
2020/09/18 Python
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
会议主持词
2014/03/17 职场文书
财务内勤岗位职责
2014/04/17 职场文书
工会工作个人总结
2015/03/03 职场文书
写给老师的保证书
2015/05/09 职场文书
用React Native制作一个简单的游戏引擎
2021/05/27 Javascript
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js