多功能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 相关文章推荐
IE浏览器打印的页眉页脚设置解决方法
Dec 08 Javascript
JS中confirm,alert,prompt函数区别分析
Jan 17 Javascript
JavaScript模板入门介绍
Sep 26 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
Dec 16 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
Jun 09 Javascript
JS判断当前页面是否在微信浏览器打开的方法
Dec 08 Javascript
jQuery实现div横向拖拽排序的简单实例
Jul 13 Javascript
详解微信小程序——自定义圆形进度条
Dec 29 Javascript
从零开始做一个pagination分页组件
Mar 15 Javascript
AugularJS从入门到实践(必看篇)
Jul 10 Javascript
深入学习JavaScript 高阶函数
Jun 11 Javascript
Vue实现星级评价效果实例详解
Dec 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
shopex中集成的站长统计功能的代码简单分析
2011/08/11 PHP
php如何调用webservice应用介绍
2012/11/24 PHP
LotusPhp笔记之:Logger组件的使用方法
2013/05/06 PHP
如何在smarty中增加类似foreach的功能自动加载数据
2013/06/26 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
PDO::commit讲解
2019/01/27 PHP
ext 列表页面关于多行查询的办法
2010/03/25 Javascript
从jQuery.camelCase()学习string.replace() 函数学习
2011/09/13 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
用box固定长宽实现图片自动轮播js代码
2014/06/09 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
轮播的简单实现方法
2016/07/28 Javascript
纯js实现悬浮按钮组件
2016/12/17 Javascript
移动端基础事件总结与应用
2017/01/12 Javascript
JavaScript 函数的定义-调用、注意事项
2017/04/16 Javascript
vue.js项目nginx部署教程
2018/04/05 Javascript
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
小程序日历控件使用方法详解
2018/12/29 Javascript
解决vue单页面修改样式无法覆盖问题
2019/08/05 Javascript
js canvas实现星空连线背景特效
2019/11/01 Javascript
[59:00]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第一场 3月7日
2021/03/11 DOTA
Python二分法搜索算法实例分析
2015/05/11 Python
Python黑帽编程 3.4 跨越VLAN详解
2016/09/28 Python
Python使用正则表达式抓取网页图片的方法示例
2017/04/21 Python
python通过伪装头部数据抵抗反爬虫的实例
2018/05/07 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
python增加图像对比度的方法
2019/07/12 Python
BISSELL官网:北美吸尘器第一品牌
2019/03/14 全球购物
Alexandre Birman美国官网:亚历山大·伯曼
2019/10/30 全球购物
上党课的心得体会
2014/09/02 职场文书
2014七年级班主任工作总结
2014/12/05 职场文书
街道社区活动报告
2015/02/05 职场文书
2019送给家人们的中秋节祝福语
2019/08/15 职场文书
go使用Gin框架利用阿里云实现短信验证码功能
2021/08/04 Golang
Python 数据结构之十大经典排序算法一文通关
2021/10/16 Python
Python Pygame实战之塔防游戏的实现
2022/03/17 Python