多功能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 相关文章推荐
在Z-Blog中运行代码[html][/html](纯JS版)
Mar 25 Javascript
Javascript与flash交互通信基础教程
Aug 07 Javascript
JavaScript 仿关机效果的图片层
Dec 26 Javascript
JavaScript高级程序设计 阅读笔记(十八) js跨平台的事件
Aug 14 Javascript
javascript中文本框中输入法切换的问题
Dec 10 Javascript
jQuery实现360°全景拖动展示
Mar 18 Javascript
Javascript BOM学习小结(六)
Nov 26 Javascript
jQuery实现的图片轮播效果完整示例
Sep 12 Javascript
vuejs如何配置less
Apr 25 Javascript
Three.js利用性能插件stats实现性能监听的方法
Sep 25 Javascript
原生JS实现九宫格抽奖
Sep 13 Javascript
vue 自定义组件添加原生事件
Apr 21 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
php zend 相对路径问题
2009/01/12 PHP
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
php4与php5的区别小结(配置异同)
2011/12/20 PHP
在html文件中也可以执行php语句的方法
2015/04/09 PHP
php进行md5加密简单实例方法
2019/09/19 PHP
JS event使用方法详解
2008/04/28 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
2013/12/17 Javascript
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
2015/09/22 Javascript
AngularJS 仿微信图片手势缩放的实例
2017/09/28 Javascript
微信小程序实现上传图片功能
2018/05/28 Javascript
详解webpack2异步加载套路
2018/09/14 Javascript
mpvue将vue项目转换为小程序
2018/09/30 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
2019/02/27 Javascript
Vue使用NProgress进度条的方法
2019/09/21 Javascript
CountUp.js数字滚动插件使用方法详解
2019/10/17 Javascript
JavaScript 替换所有匹配内容及正则替换方法
2020/02/12 Javascript
解决Vue @submit 提交后不刷新页面问题
2020/07/18 Javascript
利用Python的Django框架生成PDF文件的教程
2015/07/22 Python
Python 仅获取响应头, 不获取实体的实例
2019/08/21 Python
Django Admin中增加导出CSV功能过程解析
2019/09/04 Python
Python列表切片常用操作实例解析
2019/12/16 Python
Python命名空间namespace及作用域原理解析
2020/06/05 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
利用纯css3实现的文字亮光特效的代码演示
2014/11/27 HTML / CSS
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
美国NBA官方商店:NBA Store
2019/04/12 全球购物
Sahajan美国:阿育吠陀护肤品牌
2021/01/09 全球购物
第一批党的群众路线教育实践活动工作总结
2014/03/03 职场文书
飘柔洗发水广告词
2014/03/14 职场文书
大学新闻系自荐书
2014/05/31 职场文书
小学生推普周国旗下讲话稿
2014/09/21 职场文书
在教室放鞭炮的检讨书
2014/09/28 职场文书
2014年党的群众路线活动个人整改措施
2014/10/28 职场文书
学校捐书活动总结
2015/05/08 职场文书
培训学校2015年度工作总结
2015/07/20 职场文书