多功能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模拟多线程
Feb 07 Javascript
jquery实现页面虚拟键盘特效
Aug 08 Javascript
javascript HTML5 Canvas实现圆盘抽奖功能
Apr 11 Javascript
jQuery根据表单name获取值的方法
May 24 Javascript
jQuery Validate 相关参数及常用的自定义验证规则
Mar 06 Javascript
JavaScript实现打印星型金字塔功能实例分析
Sep 27 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
May 30 jQuery
Vue.js单向绑定和双向绑定实例分析
Aug 14 Javascript
详解Ubuntu安装angular-cli遇到的坑
Sep 08 Javascript
微信小程序实现点击空白隐藏的方法示例
Aug 13 Javascript
详解解决小程序中webview页面多层history返回问题
Aug 20 Javascript
ant design vue的form表单取值方法
Jun 01 Vue.js
基于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
风格模板初级不完全修改教程
2006/10/09 PHP
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
php 随机记录mysql rand()造成CPU 100%的解决办法
2010/05/18 PHP
PHP正则匹配到2个字符串之间的内容方法
2018/12/24 PHP
PHP获取对象属性的三种方法实例分析
2019/01/03 PHP
PHP hex2bin()函数用法讲解
2019/02/25 PHP
JavaScript Event学习第十章 一些可替换的事件对
2010/02/10 Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
基于jquery的一个拖拽到指定区域内的效果
2011/09/21 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
解析NodeJs的调试方法
2016/12/11 NodeJs
jQuery+HTML5实现弹出创意搜索框层
2016/12/29 Javascript
Ajax跨域实现代码(后台jsp)
2017/01/21 Javascript
原生JS实现《别踩白块》游戏(兼容IE)
2017/02/20 Javascript
Layui table field初始化加载时进行隐藏的方法
2019/09/19 Javascript
基于html+css+js实现简易计算器代码实例
2020/02/28 Javascript
在vue中使用回调函数,this调用无效的解决
2020/08/11 Javascript
使用python BeautifulSoup库抓取58手机维修信息
2013/11/21 Python
python中pygame模块用法实例
2014/10/09 Python
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
Python自动调用IE打开某个网站的方法
2015/06/03 Python
Python函数式编程指南(一):函数式编程概述
2015/06/24 Python
python使用Tkinter实现在线音乐播放器
2018/01/30 Python
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
在django-xadmin中APScheduler的启动初始化实例
2019/11/15 Python
python中使用asyncio实现异步IO实例分析
2021/02/26 Python
HTML5 解析规则分析
2009/08/14 HTML / CSS
全球精选男装和家居用品:Article
2020/04/13 全球购物
几个SQL的面试题
2014/03/08 面试题
电子商务专业学生的学习自我评价
2013/10/27 职场文书
质检部岗位职责
2013/11/11 职场文书
安全标语口号
2014/06/09 职场文书
2015年工商所工作总结
2015/05/21 职场文书
年会主持人开场白台词
2015/05/29 职场文书
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers
为什么RedisCluster设计成16384个槽
2021/09/25 Redis