多功能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实现带省略号的分页
Apr 27 Javascript
解析dom中的children对象数组元素firstChild,lastChild的使用
Jul 10 Javascript
js弹窗返回值详解(window.open方式)
Jan 11 Javascript
IE浏览器不支持getElementsByClassName的解决方法
Aug 27 Javascript
javascript图片预加载实例分析
Jul 16 Javascript
深入浅析knockout源码分析之订阅
Jul 12 Javascript
纯javascript版日历控件
Nov 24 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
Apr 20 Javascript
HTML5开发Kinect体感游戏的实例应用
Sep 18 Javascript
VsCode新建VueJs项目的详细步骤
Sep 23 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
Feb 04 Javascript
Vue之封装公用变量以及实现方式
Jul 31 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 while循环得到循环次数
2013/10/26 PHP
php实现汉字验证码和算式验证码的方法
2015/03/07 PHP
在Linux系统下一键重新安装WordPress的脚本示例
2015/06/30 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
wordpress自定义标签云与随机获取标签的方法详解
2019/03/22 PHP
Laravel中正确地返回HTTP状态码方法示例
2019/09/10 PHP
JS类中定义原型方法的两种实现的区别
2007/03/08 Javascript
javascript firefox兼容ie的dom方法脚本
2008/05/18 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
2013/07/09 Javascript
jquery动态改变form属性提交表单
2014/06/03 Javascript
jquery学习总结(超级详细)
2014/09/04 Javascript
js简单抽奖代码
2015/01/16 Javascript
jquery.validate使用时遇到的问题
2015/05/25 Javascript
jQuery实现两款有动画功能的导航菜单代码
2015/09/16 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
Vue.js 踩坑记之双向绑定
2018/05/03 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
phpsir 开发 一个检测百度关键字网站排名的python 程序
2009/09/17 Python
进一步探究Python的装饰器的运用
2015/05/05 Python
python获取外网ip地址的方法总结
2015/07/02 Python
Python3 关于pycharm自动导入包快捷设置的方法
2019/01/16 Python
Python数学形态学实例分析
2019/09/06 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
Python箱型图处理离群点的例子
2019/12/09 Python
利用 Python ElementTree 生成 xml的实例
2020/03/06 Python
HTML5如何实现元素拖拽
2016/03/11 HTML / CSS
Html5饼图绘制实现统计图的方法
2020/08/05 HTML / CSS
Origins悦木之源英国官网:雅诗兰黛集团高端植物护肤品牌
2017/11/06 全球购物
工商管理专业实习生自我鉴定
2013/09/29 职场文书
宿舍保安职务说明书
2014/02/25 职场文书
建房协议书
2014/04/11 职场文书
说明书格式及范文
2014/05/07 职场文书
产品委托授权书范本
2014/09/16 职场文书
2016天猫双十一广告语
2016/01/28 职场文书
2016年第十四个公民道德宣传日活动总
2016/04/01 职场文书