多功能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 相关文章推荐
Convert Seconds To Hours
Jun 16 Javascript
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
Jun 18 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
Sep 30 Javascript
node.js中的fs.readlinkSync方法使用说明
Dec 17 Javascript
修复bash漏洞的shell脚本分享
Dec 31 Javascript
jQuery实现简单的间隔向上滚动效果
Mar 09 Javascript
jquery简单插件制作(fn.extend)完整实例
May 24 Javascript
React-router中结合webpack实现按需加载实例
May 25 Javascript
JavaScript使用indexOf()实现数组去重的方法分析
Sep 04 Javascript
详解vuex commit保存数据技巧
Dec 25 Javascript
JavaScript实现拖拽盒子效果
Feb 06 Javascript
开发一个封装iframe的vue组件
Mar 29 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
PHPMailer安装方法及简单实例
2008/11/25 PHP
php中转义mysql语句的实现代码
2011/06/24 PHP
利用php绘制饼状图的实现代码
2013/06/07 PHP
php缓存技术详细总结
2013/08/07 PHP
php获取表单中多个同名input元素的值
2014/03/20 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
JS 图片缩放效果代码
2010/06/09 Javascript
json格式的时间显示为正常年月日的方法
2013/09/08 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
angularjs学习笔记之三大模块(modal,controller,view)
2015/09/26 Javascript
JS中数组重排序方法
2016/11/11 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
ionic中的$ionicPlatform.ready事件中的通用设置
2017/06/11 Javascript
用js实现before和after伪类的样式修改的示例代码
2017/09/07 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
2018/03/01 Javascript
vue中引用swiper轮播插件的教程详解
2018/08/16 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
2019/04/04 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
Vue extend的基本用法(实例详解)
2019/12/09 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
利用Python和OpenCV库将URL转换为OpenCV格式的方法
2015/03/27 Python
python3.5使用tkinter制作记事本
2016/06/20 Python
用Python将IP地址在整型和字符串之间轻松转换
2017/03/22 Python
PyQt5 QSerialPort子线程操作的实现
2018/04/21 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
2019/02/21 Python
详解Python读取yaml文件多层菜单
2019/03/23 Python
pytorch 限制GPU使用效率详解(计算效率)
2020/06/27 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
女士鞋子、包包和服装在线,第一款10美元:ShoeDazzle
2019/07/26 全球购物
竞选大队委员演讲稿
2014/04/28 职场文书
交通违章检讨书
2014/09/21 职场文书
《桂花雨》教学反思
2016/02/19 职场文书
Python实现智慧校园自动评教全新版
2021/06/18 Python
快速学习Oracle触发器和游标
2021/06/30 Oracle
【海涛解说】史上最给力比赛,挑战DOTA极限
2022/04/01 DOTA