jQuery使用zTree插件实现树形菜单和异步加载


Posted in Javascript onFebruary 25, 2016

本文实例讲解了jQuery使用zTree插件实现树形菜单和异步加载,并且可以进行编辑,分享给大家供大家参考,具体内容如下

效果图:

jQuery使用zTree插件实现树形菜单和异步加载

一、HTML代码

<html>
<head runat="server">
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title></title>
 <link href="zTree/css/demo.css" rel="stylesheet" />
 <link href="zTree/css/zTreeStyle/zTreeStyle.css" rel="stylesheet" />
 <script src="zTree/js/jquery-1.4.4.min.js"></script>
 <script src="zTree/js/jquery.ztree.core-3.5.js"></script>
 <script src="zTree/js/jquery.ztree.excheck-3.5.js"></script>
 <script src="zTree/js/jquery.ztree.exedit-3.5.js"></script>
 <script type="text/javascript">
  var setting = {
 async: {
  enable: true,
  url: "AjaxPage/GetAjax.aspx?z=sdfww234edfsd",
  autoParam: ["id"],
  dataFilter: filter,
  contentType: "application/json",
  type:"get"
 },
 view: {
  expandSpeed: "",
  addHoverDom: addHoverDom,
  removeHoverDom: removeHoverDom,
  selectedMulti: false
 },
 check: {
  enable: true
 },
 edit: {
  enable: true
 },
 data: {
  simpleData: {
  enable: true
  }
 },
 callback: {
  beforeRemove: beforeRemove,
  beforeRename: beforeRename,
 }
 };
 function filter(treeId, parentNode, childNodes) {
 if (!childNodes) return null;
 for (var i = 0, l = childNodes.length; i < l; i++) {
  childNodes[i].name = childNodes[i].name.replace(/\.n/g, '.');
 }
 return childNodes;
 }
 function beforeRemove(treeId, treeNode) {
 var zTree = $.fn.zTree.getZTreeObj("treeDemo");
 zTree.selectNode(treeNode);
 return confirm("确认删除 节点 -- " + treeNode.name + " 吗?");
 }
 function beforeRename(treeId, treeNode, newName) {
 if (newName.length == 0) {
  alert("节点名称不能为空.");
  return false;
 }
 return true;
 }

 var newCount = 1;
 function addHoverDom(treeId, treeNode) {
 var sObj = $("#" + treeNode.tId + "_span");
 if (treeNode.editNameFlag || $("#addBtn_" + treeNode.tId).length > 0) return;
 var addStr = "<span class='button add' id='addBtn_" + treeNode.tId
  + "' title='add node' onfocus='this.blur();'></span>";
 sObj.after(addStr);
 console.log("add " + "#addBtn_" + treeNode.id);
 var btn = $("#addBtn_" + treeNode.tId);
 if (btn) btn.bind("click", function () {
  var zTree = $.fn.zTree.getZTreeObj("treeDemo");
  zTree.addNodes(treeNode, { id: (100 + newCount), pId: treeNode.id, name: "new node" + (newCount++) });
  return false;
 });
 };
 function removeHoverDom(treeId, treeNode) {
 console.log("remove " + "#addBtn_" + treeNode.id);
 $("#addBtn_" + treeNode.tId).unbind().remove();
 };
 $(document).ready(function () {
 $.fn.zTree.init($("#treeDemo"), setting);
 });
 </script>
</head>
<body>
 <ul id="treeDemo" class="ztree" style="width: 560px; overflow: auto;"></ul>
</body>
</html>

二、异步请求的后台数据:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CssStudyWeb.AjaxPage
{
 public partial class GetAjax : System.Web.UI.Page
 {
 protected void Page_Load(object sender, EventArgs e)
 {
  if (Request.QueryString["z"] == "sdfww234edfsd")//根据会员卡号,查询会员卡信息
  {
  StringBuilder sb = new StringBuilder();
  sb.Append("[");
  sb.Append("{\"id\":\"1\",\"name\":\"销售单管理\",\"pId\":\"0\"},");
  sb.Append("{\"id\":\"101\",\"name\":\"销售单列表\",\"pId\":\"1\"},");
  sb.Append("{\"id\":\"102\",\"name\":\"销售单综合查询\",\"pId\":\"1\"},");

  sb.Append("{\"id\":\"2\",\"name\":\"系统管理\",\"pId\":\"0\"},");
  sb.Append("{\"id\":\"103\",\"name\":\"权限组管理\",\"pId\":\"2\"},");
  sb.Append("{\"id\":\"104\",\"name\":\"权限菜单管理\",\"pId\":\"2\"}");
  sb.Append("]");
  Response.Write(sb.ToString());
  }
 }
 }
}

更多关于ztree控件的内容,请参考专题《jQuery插件ztree使用汇总》

以上就是zTree插件实现树形菜单和异步加载的全部代码,希望对大家的学习有所帮助。

Javascript 相关文章推荐
设置下载不需要倒计时cookie(倒计时代码)
Nov 19 Javascript
JS操作CSS随机改变网页背景实现思路
Mar 10 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
Jun 24 Javascript
Google 地图类型详解及示例代码
Aug 06 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
Oct 12 Javascript
bootstrap提示标签、提示框实现代码
Dec 28 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
Feb 22 Javascript
angular-cli修改端口号【angular2】
Apr 19 Javascript
javascript ES6 新增了let命令使用介绍
Jul 07 Javascript
template.js前端模板引擎使用详解
Oct 10 Javascript
vue 1.0 结合animate.css定义动画效果
Jul 11 Javascript
vue实现可移动的悬浮按钮
Mar 04 Vue.js
灵活的理解JavaScript中的this指向
Feb 25 #Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
Feb 25 #Javascript
jQuery插件实现文字无缝向上滚动效果代码
Feb 25 #Javascript
jQuery zTree加载树形菜单功能
Feb 25 #Javascript
JavaScript实现搜索框的自动完成功能(一)
Feb 25 #Javascript
jquery插件之文字间歇自动向上滚动效果代码
Feb 25 #Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
Feb 25 #Javascript
You might like
深入理解PHP之数组(遍历顺序)  Laruence原创
2012/06/13 PHP
使用PHP会话(Session)实现用户登陆功能
2013/06/29 PHP
PHP生成不重复随机数的方法汇总
2014/11/19 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
PHP7新特性foreach 修改示例介绍
2016/08/26 PHP
Zend Framework实现自定义过滤器的方法
2016/12/09 PHP
laravel-admin 实现给grid的列添加行数序号的方法
2019/10/08 PHP
jquery 表单进行客户端验证demo
2009/08/24 Javascript
javascript中利用数组实现的循环队列代码
2010/01/24 Javascript
关于JS控制代码暂停的实现方法分享
2012/10/11 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
2013/10/29 Javascript
JS中Date日期函数中的参数使用介绍
2014/01/02 Javascript
JavaScript获取对象在页面中位置坐标的方法
2016/02/03 Javascript
微信小程序 实战小程序实例
2016/10/08 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
2017/03/27 Javascript
Angular实现预加载延迟模块的示例
2017/10/12 Javascript
JavaScript中常用的简洁高级技巧总结
2019/03/10 Javascript
详解如何理解vue的key属性
2019/04/14 Javascript
如何利用vue+vue-router+elementUI实现简易通讯录
2019/05/13 Javascript
JavaScript使用表单元素验证表单的示例代码
2019/08/20 Javascript
vue的路由映射问题及解决方案
2019/10/14 Javascript
Vue中img的src是动态渲染时不显示的解决
2019/11/14 Javascript
在Vue项目中使用Typescript的实现
2019/12/19 Javascript
vue界面发送表情的实现代码
2020/09/11 Javascript
python实现人人网登录示例分享
2014/01/19 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
python3实现网页版raspberry pi(树莓派)小车控制
2020/02/12 Python
PyCharm刷新项目(文件)目录的实现
2020/02/14 Python
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
Zavvi西班牙:电子游戏、极客服装、Blu-ray、Funko Pop等
2019/05/03 全球购物
手工制作的意大利皮革运动鞋:KOIO
2020/01/05 全球购物
产品生产计划书
2014/05/07 职场文书
计划生育责任书
2015/05/09 职场文书
小孩不笨观后感
2015/06/03 职场文书
家长会后的感想
2015/08/11 职场文书
2019朋友新婚祝福语精选
2019/10/10 职场文书