多功能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创建和操作表格的函数集合
May 07 Javascript
javascript 当前日期加(天、周、月、年)
Aug 09 Javascript
使用js实现雪花飘落效果
Aug 26 Javascript
jQuery ajax dataType值为text json探索分享
Sep 23 Javascript
JS实现图片上传预览功能
Nov 21 Javascript
VsCode新建VueJs项目的详细步骤
Sep 23 Javascript
Vue.js 2.x之组件的定义和注册图文详解
Jun 19 Javascript
vuejs router history 配置到iis的方法
Sep 20 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
Jan 08 Javascript
JQuery中queue方法用法示例
Jan 31 jQuery
vue读取本地的excel文件并显示在网页上方法示例
May 29 Javascript
layui table数据修改的回显方法
Sep 04 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
第十三节 对象串行化 [13]
2006/10/09 PHP
ip签名探针
2006/10/09 PHP
一个ubbcode的函数,速度很快.
2006/10/09 PHP
php 方便水印和缩略图的图形类
2009/05/21 PHP
php实现的遍历文件夹下所有文件,编辑删除
2010/01/05 PHP
php中对2个数组相加的函数
2011/06/24 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
2014/06/19 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
PHP简单读取xml文件的方法示例
2017/04/20 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
js中的值类型和引用类型小结 文字说明与实例
2010/12/12 Javascript
jQuery表格行换色的三种实现方法
2011/06/27 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
jQuery实现固定在网页顶部的菜单效果代码
2015/09/02 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
浅谈Vue的基本应用
2016/12/27 Javascript
浅谈Node.js之异步流控制
2017/10/25 Javascript
浅析从vue源码看观察者模式
2018/01/29 Javascript
vue中实现上传文件给后台实例详解
2019/08/22 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
2019/11/19 Javascript
[59:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第二局
2016/03/04 DOTA
python进程管理工具supervisor使用实例
2014/09/17 Python
python求列表交集的方法汇总
2014/11/10 Python
Python正则表达式非贪婪、多行匹配功能示例
2017/08/08 Python
python中的常量和变量代码详解
2018/07/25 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
2018/12/27 Python
python实现统计文本中单词出现的频率详解
2019/05/20 Python
django 类视图的使用方法详解
2019/07/24 Python
Python爬虫运用正则表达式的方法和优缺点
2019/08/25 Python
Python unittest生成测试报告过程解析
2020/09/08 Python
Nisbets法国:英国最大的厨房和餐饮设备供应商
2019/03/18 全球购物
离婚协议书范本(通用篇)
2014/11/30 职场文书
团员年度个人总结
2015/02/26 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书