多功能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 相关文章推荐
Exitjs获取DataView中图片文件名
Nov 26 Javascript
javascript中Number对象的toString()方法分析
Dec 20 Javascript
jquery实现可点击伸缩与展开的菜单效果代码
Aug 31 Javascript
js严格模式总结(分享)
Aug 22 Javascript
iscroll.js滚动加载实例详解
Jul 18 Javascript
AngularJS集合数据遍历显示的实例
Dec 27 Javascript
通过js动态创建标签,并设置属性方法
Feb 24 Javascript
vue 实现axios拦截、页面跳转和token 验证
Jul 17 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
Apr 04 Javascript
vue3.0 搭建项目总结(详细步骤)
May 20 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
Jun 27 Javascript
VueCli3.0中集成MockApi的方法示例
Jul 05 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查询域名状态whois的类
2006/11/25 PHP
在PHP中检查PHP文件是否有语法错误的方法
2009/12/23 PHP
有关php运算符的知识大全
2011/11/03 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
通过隐藏option实现select的联动效果
2009/11/10 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
EasyUI实现第二层弹出框的方法
2015/03/01 Javascript
使用Node.js处理前端代码文件的编码问题
2016/02/16 Javascript
js创建jsonArray传输至后台及后台全面解析
2016/04/11 Javascript
JavaScript prototype属性详解
2016/10/25 Javascript
JS实现倒计时(天数、时、分、秒)
2016/11/16 Javascript
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
2017/09/20 Javascript
jfinal与bootstrap的登出实战详解
2017/11/27 Javascript
浅谈微信页面入口文件被缓存解决方案
2018/09/29 Javascript
使用js原生实现年份轮播选择效果实例
2021/01/12 Javascript
Python中用Decorator来简化元编程的教程
2015/04/13 Python
python自动化测试之DDT数据驱动的实现代码
2019/07/23 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
详解Python list和numpy array的存储和读取方法
2019/11/06 Python
python实现简单日志记录库glog的使用
2019/12/13 Python
解决python使用list()时总是报错的问题
2020/05/05 Python
解决python调用自己文件函数/执行函数找不到包问题
2020/06/01 Python
python实现凯撒密码、凯撒加解密算法
2020/06/11 Python
解决keras,val_categorical_accuracy:,0.0000e+00问题
2020/07/02 Python
Python利用imshow制作自定义渐变填充柱状图(colorbar)
2020/12/10 Python
什么是反射?如何实现反射?
2016/07/25 面试题
品学兼优的大学生自我评价
2013/09/20 职场文书
绝对经典成功的大学生推荐信
2013/11/08 职场文书
工程管理造价应届生求职信
2013/11/13 职场文书
大学军训感言1000字
2014/02/25 职场文书
医学生临床实习自我评价
2014/03/07 职场文书
2014五一国际劳动节活动总结范文
2014/04/14 职场文书
小班上学期评语
2014/05/05 职场文书
大学学生会主席竞选稿
2015/11/19 职场文书