• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >jquery > Jquery树插件zTree用法入门教程

Jquery树插件zTree用法入门教程

作者:丨深水蓝丨 字体:[增加 减小] 来源:互联网 时间:2017-08-16

丨深水蓝丨 通过本文主要向大家介绍了Jquery,树插件,zTree,用法,入门,教程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例分析了Jquery树插件zTree用法。分享给大家供大家参考。具体分析如下:

关于zTree的介绍就搜吧。

这个例子的最终效果如下:

鼠标移动到一级目录时出现全选链接,点击全选链接该目录下的所有子项都被添加到收件人的文本框中,当然点击单个子项则添加一个。至于要添加些什么信息由自己决定。

1. 下载zTee,页面引入jquery.js,根据功能需求添加zTree相应的js和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> 
    <script type="text/javascript" src="js/jquery.ztree.exedit-3.5.js"></script> 
<link rel="stylesheet" href="css/zTreeStyle/zTreeStyle.css" type="text/css">
 
jquery.ztree.core-3.5.js:zTree核心包 
 
jquery.ztree.excheck-3.5.js:复选框功能包  
 
jquery.ztree.exedit-3.5.js:编辑功能包  

zTree核心包是必须引入的。

2. 配置zTree,个别说明见代码中的注释

zTree设置信息:

变量:zTree中用到的html标签ID都会在后面添加以下后缀,如一级目录前面的展开和关闭图片的id为添加IDMark_Switch,其他的摸索吧。
IDMark_Icon = "_ico", 
IDMark_Span = "_span", 
IDMark_Input = "_input", 
IDMark_Check = "_check", 
IDMark_Edit = "_edit", 
IDMark_Remove = "_remove", 
IDMark_Ul = "_ul", 
IDMark_A = "_a"; 

var setting = { 
    view: { 
 addHoverDom: addHoverDom, 
 removeHoverDom: removeHoverDom 
    }, 
    callback: { 
 beforeClick: beforeClick, 
 onClick: onClick 
    } 
}; 
function beforeClick(treeId, treeNode, clickFlag) { 
    //alert(treeNode.id); 
    var ticketBagNo = treeNode.phone; 
    re =new RegExp(ticketBagNo);  
    var accept = $("#accept").val();//找到要放数据的地方,并测试是否已经存在 
    if(!re.test(accept)){ 
    $("#accept").val(accept+treeNode.name+"<"+ticketBagNo+">,"); 
    } 
} 
function onClick(event, treeId, treeNode, clickFlag) { 
    //alert(clickFlag+"zzz"); 
}

callback中有两个回调函数

beforeClick:

是用于捕获 勾选 或 取消勾选 之前的事件回调函数,并且根据返回值确定是否允许 勾选 或 取消勾选默认值:null

onClick:

用于捕获节点被点击的事件回调函数
如果设置了 beforeClick 方法,且返回 false,将无法触发 onClick 事件回调函数。
默认值:null

addHoverDom,就是鼠标移过节点所作出的反应,我们这里为一级目录添加一个全选功能,addHoverDom是一个函数:
 if (!treeNode.children)return; 
    if (treeNode.parentNode && treeNode.parentNode.id!=1 ) return; 
    var aObj = $("#" + treeNode.tId + IDMark_A); 
    if (treeNode.children.length>0) { 
 if ($("#diyBtn1_"+treeNode.id).length>0) return; 
 if ($("#diyBtn2_"+treeNode.id).length>0) return;//' onclick='allSelect("+treeNode+") 
 var editStr = "<a id='diyBtn1_" +treeNode.id+ "' style='margin:0 0 0 5px;color:red;'>全选</a>"; 
 aObj.append(editStr); 
 document.getElementById("diyBtn1_"+treeNode.id).onclick = function() { 
      allSelect(treeNode); 
 }; 
    } 
}

全选allSelect方法:
    if (!treeNode.children)return; 
    for(i=0;i<treeNode.children.length;i++){ 
 var ticketBagNo = treeNode.children[i].phone; 
    re =new RegExp(ticketBagNo);   
    var accept = $("#accept").val();//找到文本框如果该记录未添加就添加 
    if(!re.test(accept)){ 
 $("#accept").val(accept+treeNode.children[i].name+"<"+ticketBagNo+">,"); 
    } 
    } 
}

removeHoverDom:鼠标移除节点所做出的反应,去掉全选
if (!treeNode.children)return; 
$("#diyBtn1_"+treeNode.id).unbind().remove(); 
}

zTree节点信息:可以根据需求动态生成。

以下为Demo数据,每个节点中的name,phone都可以按照自己的需要进行添加或修改,比如你要添加一个年龄:age="23",但是要注意格式问题,这一点是非常方便。
    {id:1,name:"所有老师",open:false,//这里false为默认关闭,true打开 
 children:[ 
  {id:2,name:"测试老师",phone:"123456789101"}, 
  {id:3,name:"大老师",phone:"15623545621"} 
 ] 
    }, 
    {id:4,name:"一班",open:true, 
 children:[ 
      
   {id:5,name:"小花",phone:"25364215211"}, 
  {id:6,name:"小绿",phone:"365241253"} 
  }, 

  {id:7,name:"二班",open:true, 
 children:[ 
      
   {id:8,name:"小家",phone:"25364215211"}, 
  {id:9,name:"小沙",phone:"365241253"} 
   } 
];

以下是我用jsp从服务动态生成树的例子,不需要可以忽略,我留着以后参考的。
<s:if test="#session.teacherList.size()>0"> 
    {id:1,name:"所有老师",open:false, 
 children:[ 
  <s:iterator value="#session.teacherList" status="tindex" var="t"> 
  <s:if test="#session.teacherList.size() != #tindex.index+1">{id:<s:property value="#tindex.index+2"/>,name:"<s:property value='#t.TName' escape='false' />",phone:"<s:property value='#t.TPhone' escape='false'/>"},</s:if> 
  <s:if test="#session.teacherList.size() == #tindex.index+1">{id:<s:property value="#tindex.index+2"/>,name:"<s:property value='#t.TName' escape='false' />",phone:"<s:property value='#t.TPhone' escape='false'/>"}</s:if> 
  </s:iterator> 
 ] 
    }, 
    </s:if> 
<s:iterator value="#session.classList" status="loop" var="c"> 
    <s:if test="#c.students.size()>0"> 
    {id:<s:property value='#c.students.size()+#session.teacherList.size()+#loop.index+3'/>,name:"<s:property value='#c.clsName' escape='false'/>",open:true, 
 children:[ 
     <s:iterator value="#c.students" status="l" var="s"> 
  <s:if test="#c.students.size() != #l.index+1"> {id:<s:property value="#l.index+#session.teacherList.size()+#loop.index+4"/>,name:"<s:property  escape='false' value='#s.SName'/>",phone:"<s:property value='#s.SPhone' escape='false'/>"},</s:if> 
  <s:if test="#c.students.size() == #l.index+1">{id:<s:property value="#l.index+#session.teacherList.size()+#loop.index+4"/>,name:"<s:property  escape='false' value='#s.SName'/>",phone:"<s:property value='#s.SPhone' escape='false'/>"}</s:if> 
     </s:iterator> 
     <s:if test="#session.classList.size() != #loop.index+1">]},</s:if> 
     <s:if test="#session.classList.size() == #loop.index+1">]}</s:if> 
    </s:if> 
</s:iterator> 
];*/

准备就绪。初始化树要显示的地方,
    $.fn.zTree.init($("#treeDemo"), setting, zNodes); 
});

希望本文所述对大家的javascript程序设计有所帮助。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 基于jQuery对象和DOM对象和字符串之间的转化实例
  • jquery+css实现简单的图片轮播效果
  • 使用jQuery实现鼠标点击左右按钮滑动切换
  • jQuery实现上传图片前预览效果功能
  • jQuery初级教程之网站品牌列表效果
  • 基于jquery实现多选下拉列表
  • jQuery接受后台传递的List的实例详解
  • 详解jquery选择器的原理
  • jQuery上传插件webupload使用方法
  • 关于jquery form表单序列化的注意事项详解

相关文章

  • 2017-08-16jquery-1.2.6得到焦点与失去焦点的写法
  • 2017-08-16jQuery自定义图片上传插件实例代码
  • 2017-08-16jquery实现文本框的禁用和启用
  • 2017-08-16jquery判断iPhone、Android设备类型
  • 2017-08-16jQuery源码解读之extend()与工具方法、实例方法详解
  • 2017-08-16jQuery.holdReady()方法用法实例
  • 2017-08-16jQuery中:enabled选择器用法实例
  • 2017-08-16jquery禁止输入数字以外的字符的示例(纯数字验证码)
  • 2017-08-16jQuery中remove()方法用法实例
  • 2017-08-16多种JQuery循环滚动文字图片效果代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 基于jQuery替换table中的内容并显示进度条的代码
    • jQuery实现的多滑动门,多选项卡效果代码
    • jQuery EasyUI封装简化操作
    • jquery表单验证插件validation使用方法详解
    • jQuery EasyUI API 中文文档 - Tabs标签页/选项卡
    • jquery实现仿Flash的横向滑动菜单效果代码
    • jquery引用方法时传递参数原理分析
    • ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
    • jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
    • jQuery输入框密码的显示隐藏【代码分享】

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有