JQuery ZTree使用方法详解


Posted in Javascript onJanuary 07, 2017

JQuery ZTree简单使用

@(JavaScript)[jQuery, ztree, 入门]

基本概述

zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。专门适合项目开发,尤其是 树状菜单、树状数据的Web显示、权限管理等等。

zTree 是开源免费的软件(MIT 许可证)。在开源的作用下,zTree 越来越完善,目前已经拥有了不少粉丝,并且今后还会推出更多的 zTree 扩展功能库,让 zTree 更加强大。            ——参考《百度百科》

官网:zTree官网

PS:zTree的官方API文档和demo挺详细的,值得一读。

案例

使用标准json数据构造ztree

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
  <head>
   <meta charset="UTF-8">
   <title>ztree测试</title>
   <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/easyui/themes/default/easyui.css">
   <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/easyui/themes/icon.css">
   <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.8.3.js"></script>
   <script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui/jquery.easyui.min.js"></script>
   <link rel="stylesheet" href="${pageContext.request.contextPath}/js/ztree/zTreeStyle.css" type="text/css">
   <script type="text/javascript" src="${pageContext.request.contextPath}/js/ztree/jquery.ztree.all-3.5.js"></script>

   <script type="text/javascript">
    $(function(){
     $("#btn").click(function() {
      var isExists = $("#et").tabs("exists", "标题");
      if(isExists) {
        $("#et").tabs("select","标题");
      } else {
        $("#et").tabs("add", {
         title:"标题",
         closable:true,
         iconCls:"icon-save",
         content:"<iframe frameborder='no' height='100%' width='100%' src='3-tabs.jsp'></iframe>"
        });
      }
     });
    });
   </script>
   <!-- 使用标准json数据构造ztree -->
   <script type="text/javascript">
    $(function() {
     var setting = {};

     var zNodes = [
         {name:'结点1',children:[
              {name:'结点11'},
              {name:'结点12'}
              ]},
         {name:'结点2'},
         {name:'结点3'}
         ];

     $.fn.zTree.init($("#ztree1"), setting, zNodes);
    });
   </script>
  </head>
  <body class="easyui-layout">
   <!-- 分为五个区域 -->
   <div style="height: 100px;" data-options="region:'north'">北部区域</div>
   <div style="width: 200px;" data-options="region:'west'">
    <div class="easyui-accordion" data-options="fit:true">
     <div data-options="iconCls:'icon-save'" title="系统菜单">
      <a id="btn" class="easyui-linkbutton">按钮</a>
     </div>
     <div data-options="iconCls:'icon-remove'" title="业务菜单">
      <ul id="ztree1" class="ztree"></ul>
     </div>
     <div data-options="iconCls:'icon-remove'" title="功能菜单">内容3</div>
     <div data-options="iconCls:'icon-remove'" title="非功能菜单">内容4</div>
    </div>
   </div>
   <div style="" data-options="region:'center'">
    <div id="et" class="easyui-tabs" data-options="fit:true">
     <div data-options="iconCls:'icon-save', closable:true" title="系统菜单">内容1</div>
     <div data-options="iconCls:'icon-remove'" title="业务菜单">内容2</div>
    </div>
   </div>
   <div style="width: 100px;" data-options="region:'east'">东部区域</div>
   <div style="height: 50px;" data-options="region:'south'">南部区域</div>
  </body>
</html>

使用简单json数据构造ztree

<div data-options="iconCls:'icon-remove'" title="功能菜单">
    <ul id="ztree2" class="ztree"></ul>
   </div>

 <!-- 使用简单json数据构造ztree -->
 <script type="text/javascript">
  $(function() {
   var setting = {
    data: {
      simpleData: {
       enable: true
      }
    }
   };

   var zNodes = [
    {"id":1, "pId":0, "name":"test1"},
    {"id":11, "pId":1, "name":"test11"},
    {"id":12, "pId":1, "name":"test12"},
    {"id":111, "pId":11, "name":"test111"},
    {"id":2, "pId":0, "name":"test2"},
    {"id":3, "pId":0, "name":"test3"},
    {"id":31, "pId":2, "name":"test31"}
   ];

   $.fn.zTree.init($("#ztree2"), setting, zNodes);
  });
 </script>

发送ajax请求获取动态json数据构造ztree

json内容

[
  { "id":"11", "pId":"0", "name":"菜单1"},
  { "id":"111", "pId":"11", "name":"菜单11", "page":"xx.action"},
  { "id":"112", "pId":"11", "name":"菜单12","page":"xx.action"},
  { "id":"113", "pId":"11", "name":"菜单13", "page":"xx.action"},
  { "id":"114", "pId":"11", "name":"菜单14","page":"xx.action"},
  { "id":"12", "pId":"0", "name":"菜单2"},
  { "id":"121", "pId":"12", "name":"菜单21" ,"page":"xx.action"},
  { "id":"122", "pId":"12", "name":"菜单22" ,"page":"xx.action"},
  { "id":"123", "pId":"12", "name":"菜单23" ,"page":"xx.action"},
  { "id":"13", "pId":"0", "name":"菜单3"},
  { "id":"131", "pId":"13", "name":"菜单31","page":"xx.action"},
  { "id":"132", "pId":"13", "name":"菜单32","page":"xx.action"}
]

html片段

<div data-options="iconCls:'icon-remove'" title="非功能菜单">
    <ul id="ztree3" class="ztree"></ul>
   </div>

 <!-- 发送ajax请求获取动态json数据构造ztree -->
 <script type="text/javascript">
  $(function() {
   var setting = {
    data: {
      simpleData: {
       enable: true
      }
    }
   };

   $.ajax({
    url:'${pageContext.request.contextPath}/json/menu.json',
    type:'get',
    data:'',
    dataType:'json',
    success:function (data) {
      $.fn.zTree.init($("#ztree3"), setting, data);
    }
   });
  });
 </script>

为ztree节点绑定事件动态添加选项卡

json内容

[
  { "id":"11", "pId":"0", "name":"菜单1"},
  { "id":"111", "pId":"11", "name":"菜单11", "page":"xx.action"},
  { "id":"112", "pId":"11", "name":"菜单12","page":"xx.action"},
  { "id":"113", "pId":"11", "name":"菜单13", "page":"xx.action"},
  { "id":"114", "pId":"11", "name":"菜单14","page":"xx.action"},
  { "id":"12", "pId":"0", "name":"菜单2"},
  { "id":"121", "pId":"12", "name":"菜单21" ,"page":"xx.action"},
  { "id":"122", "pId":"12", "name":"菜单22" ,"page":"xx.action"},
  { "id":"123", "pId":"12", "name":"菜单23" ,"page":"xx.action"},
  { "id":"13", "pId":"0", "name":"菜单3"},
  { "id":"131", "pId":"13", "name":"菜单31","page":"xx.action"},
  { "id":"132", "pId":"13", "name":"菜单32","page":"xx.action"}
]

html文件

<div data-options="iconCls:'icon-save'" title="ztree事件">
    <ul id="ztree4" class="ztree"></ul>
   </div>

 <!-- 为ztree节点绑定事件动态添加选项卡 -->
 <script type="text/javascript">
  $(function() {
   var setting = {
    data: {
      simpleData: {
       enable: true
      }
    },
    callback: {
      onClick: function(event, treeId, treeNode) {
       if(treeNode.page != undefined) {
        var isExists = $("#et").tabs("exists", treeNode.name);
        if(isExists) {
         $("#et").tabs("select", treeNode.name);
        } else {
         $("#et").tabs("add", {
          title:treeNode.name,
          closable:true,
          iconCls:"icon-edit",
          content:"<iframe frameborder='no' height='100%' width='100%' src='"+ treeNode.page +"'></iframe>"
         });
        }
       }
      }
    }
   };

   $.ajax({
    url:'${pageContext.request.contextPath}/json/menu.json',
    type:'get',
    data:'',
    dataType:'json',
    success:function (data) {
      $.fn.zTree.init($("#ztree4"), setting, data);
    }
   });
  });
 </script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript中的Location地址对象
Jan 16 Javascript
7款吸引人眼球的jQuery/CSS3特效实例分享
Apr 25 Javascript
Egret引擎开发指南之发布项目
Sep 03 Javascript
jQuery设置和移除文本框默认值的方法
Mar 09 Javascript
jquery自动补齐功能插件flexselect用法示例
Aug 06 Javascript
node学习记录之搭建web服务器教程
Feb 16 Javascript
深入理解Javascript中的作用域链和闭包
Apr 25 Javascript
基于JS脚本语言的基础语法详解
Jul 22 Javascript
angularjs实现时间轴效果的示例代码
Nov 29 Javascript
vue.js+element-ui动态配置菜单的实例
Sep 07 Javascript
JavaScript中Dom操作实例详解
Jul 08 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
Jul 19 Javascript
jquery实现转盘抽奖功能
Jan 06 #Javascript
BootStrap3中模态对话框的使用
Jan 06 #Javascript
如何制作幻灯片(代码分享)
Jan 06 #Javascript
微信小程序 支付简单实例及注意事项
Jan 06 #Javascript
微信小程序-拍照或选择图片并上传文件
Jan 06 #Javascript
ajax异步请求详解
Jan 06 #Javascript
微信小程序 限制1M的瘦身技巧与方法详解
Jan 06 #Javascript
You might like
PHP计算2点经纬度之间的距离代码
2013/08/12 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
2016/05/13 PHP
jquery 循环显示div的示例代码
2013/10/18 Javascript
js函数返回多个返回值的示例代码
2013/11/05 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
2015/09/17 Javascript
jquery实现全屏滚动
2015/12/28 Javascript
jQuery实现无限往下滚动效果代码
2016/04/16 Javascript
Avalon中文长字符截取、关键字符隐藏、自定义过滤器
2016/05/18 Javascript
jQuery简单实现彩色云标签效果示例
2016/08/01 Javascript
JQuery实现DIV其他动画效果的简单实例
2016/09/18 Javascript
BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法
2016/12/01 Javascript
jQuery获取选中单选按钮radio的值
2016/12/27 Javascript
canvas知识总结
2017/01/25 Javascript
jQuery实现火车票买票城市选择切换功能
2017/09/15 jQuery
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
vue如何在自定义组件中使用v-model
2018/05/14 Javascript
vue项目中添加单元测试的方法
2018/07/21 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
六个窍门助你提高Python运行效率
2015/06/09 Python
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
用Eclipse写python程序
2018/02/10 Python
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
浅谈python累加求和+奇偶数求和_break_continue
2020/02/25 Python
如何用python批量调整视频声音
2020/12/22 Python
使用phonegap进行本地存储的实现方法
2017/03/31 HTML / CSS
世界领先的高品质定制产品平台:Zazzle
2017/07/23 全球购物
房地产营销策划方案
2014/02/08 职场文书
防卫过当辩护词
2015/05/21 职场文书
主持人大赛开场白
2015/05/29 职场文书
创业计划书之美容店
2019/09/16 职场文书
php去除数组中为0的元素的实例分析
2021/11/17 PHP
Python自动化实战之接口请求的实现
2022/05/30 Python