最近用到了Dynatree的树形结构,记录一下它的用法。

需求:

1.jquery.js

2.jquery-ui.custom.js

3.jquery.cookie.js

下载dynatree,放到资源路径下,在页面引入ui.dynatree.css,jquery.dynatree.js。

  1. $(function(){
  2. $("#tree").dynatree({ //tree生成树形结构所在的节点的ID如<div id="tree"></div>
  3. title:"树形结构", //树的名字
    minExpandLevel:1, //1:根节点不能展开
    imagePath:'', //文件夹节点图片路径
    children:'json', //从这个(json,html,xml)对象初始化一个树结构
    initId:'treeUl', //从一个ID为treeUl的ul元素初始化一个树结构
    initAjax:{url:"",data:{id:2}}, //异步请求服务器数据初始化一个树结构,url服务器url,data是url请求参数
    autoFocus:true, //true:当父节点展开或懒加载时,自动选中第一个子节点
    keyboard:true, //true:支持键盘切换节点
    persist:false, //true:保存展开状态到cookie中
    autoCollapse:flase, //true:当一个节点是展开的,自动折叠其他兄弟节点
    clickFolderMode:3, //1:activate,2:expand,3:activate and expand
    activeVisible:true, //true:确保活动的节点是可见的(展开的)
    checkbox:false, //true:显示选择框
    selectMode:2, //1:单选,2:多选,3:多层多选
    fx:null, //动画,null或{height:"toggle",duration:200}
    noLink:false, //用<span>标签代替所有<a>标签
    onClick:null, //点击会产生 focus,expand,activate,select 事件
    onDblClick:null, //
    onKeydown:null, //产生keyboard navigation 事件同时产生(focus,expand,activate)事件
    onKeypress:null, //
    onFocus:null, //当一个节点获得焦点时触发
    onBlur:null, //当一个节点失去焦点时触发
         debugLevel:0, //调试模式,0.关闭1.normal 2.debug
  4. });
  5. });

以上是基本用法。

从服务器返回数据的格式一般为json:[{title:"一层节点"},{title:"一层节点",isFolder:true,children:[{title:"二层节点"},{title:"二层节点",selfField:"自定义自定义字段"}]}]

json还可以添加自定义字段。

onClick事件:onClick:function(node){node.data.selfField}

通过node.data.selfField可以获取从服务器传过来的字段的值,其他事件类似。

补充:

$("#tree").dynatree("getTree")获取树的实例对象

$("#tree").dynatree("getTree").reload()重新加载树

如果需要修改initAjax的URL的参数或不同的URL,在reload之前修改参数就好了

$("#tree").dynatree("option","initAjax",{url:'xxxxxxx'})//修改initAjax参数,重写URL

$("#tree").dynatree("getTree").reload()

如果要隐藏一级所有的checkbox,需要在生成树的时候设置hideCheckbox=true,设置checkbox不可选unselectable=true

获取所有选中的项var select = $("#tree").dynatree("getTree").getSelectedNodes()

设置选中或不选中

for(var se in select){

select[se].select(false)//false不选中,true选中

}

如果显示了checkbox,点击时会触发click事件,为了把选中事件和点击事件分开,在onClick方法中需要判断当前时间触发的是否是title

if(node.getEventTargetType(event)=='title'){

//如果点击的是文本

}

onPostInit当树加载完毕时会触发,可以执行一些初始化操作,比如获取上一次活动的选项(需要设置persist=true)

this.getActiveNode()

Dynatree在线文档

原文档已经失效,这里是github地址

Dynatree使用的更多相关文章

  1. JQuery树形目录插件Dynatree

    最近做网页需要做一个树形目录功能.找了一下发现有很多JQuery插件都可以实现这个功能.选了一个自己觉得最满意的插件Dynatree做个学习笔记. 可以把静态的html转成树形目录,还可以动态创建添加 ...

  2. JQuery树形插件Dynatree的包装对象

    这是JQuery Dynatree插件的包装对象,做了些改进和增强,增加了右键菜单,以及相应事件等扩展1. [代码]MagicDTree的基本使用 <SCRIPT type=text/javas ...

  3. Bootstrap相关资料

    WEB项目中,使用Bootstrap较多.但是一些插件却比较确实,所以整理了一份Bootstrap相关插件的地址.基本满足日常WEB开发中插件需求.并且还挺好用的 bootstrap说明文档,有问题可 ...

  4. highchart 添加新的series

    code: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" c ...

  5. Jquery之树形插件

    1.DynaTree (推荐使用,说明文档以及样例在下载的压缩包里\doc\samples.html) DynaTree 是一个优化的动态jQuery树查看插件,它只在需要时才创建DOM元素.支持ch ...

  6. 实用的树形菜单控件tree

     jQuery plugin: Treeview  这个插件能够把无序列表转换成可展开与收缩的Tree. jQuery plugin: Treeview  jQuery  jstree  jsTree ...

  7. 10+ 最流行的 jQuery Tree 菜单插件

    jstree – jQuery Tree Plugin With HTML & JSON Data jstree is a lightweight and flexible jQuery pl ...

  8. html树形菜单控件

    html树形菜单控件  链接 http://www.ithao123.cn/content-713974.html         jQuery plugin: Treeview  这个插件能够把无序 ...

  9. 30 个最棒的 jQuery 的拖放插件

    jQuery 允许用户为任意 DOM 元素添加可拖放的功能,通过 jQuery 的拖放插件你可以轻松实现网页上任意元素的拖拽操作.在本文中我们向你推荐 30 个最棒的 jQuery 的拖放插件. 点击 ...

随机推荐

  1. URAL 2089 Experienced coach Twosat

    Description Misha trains several ACM teams at the university. He is an experienced coach, and he doe ...

  2. 亲临现场不是梦,2017央视春晚推出VR直播

    自里约奥运会首次试水VR直播 后,用户开始关注这种观影方式,一瞬间VR直播开始流行.就在月初,江苏卫视宣布2017年跨年晚会将进行VR全景直播.当然,央视是绝对不会错过这中潮流方式. 据悉,央视201 ...

  3. ssh自动输入密码脚本 切换目录脚本

    利用expect的,首先查看expect,命令:which expect #!/usr/bin/expect -f spawn ssh 用户名@ip地址 expect "assword:&q ...

  4. JavaScript-String基础知识

    1.字符串可以0个或多个字符串放在一起:     " ' '    ".'""' . "\"\""       2.写法 ...

  5. C#SerialPort如何读取串口数据并显示在TextBox上

    SerialPort中串口数据的读取与写入有较大的不同.由于串口不知道数据何时到达,因此有两种方法可以实现串口数据的读取.一.线程实时读串口:二.事件触发方式实现. 由于线程实时读串口的效率不是十分高 ...

  6. iOS中 将 颜色转化成图片

    定义一个类方法: 声明: + (UIImage *)imageFromColor:(UIColor *)color; 实现: + (UIImage *)imageFromColor:(UIColor ...

  7. jsfl脚本设置导出AS链接名遇到的奇怪问题

    今天写jsfl脚本发现一个奇怪的问题,脚本用于对库对象设置AS链接名,代码如下: var item = fl.getDocumentDOM().library.items[0];var exportN ...

  8. 【Beta】Daily Scrum Meeting第七次

    1.任务进度 学号 已完成 接下去要做 502 发布任务到服务器 测试 509 将各api的处理逻辑放到类里面 让主api调用这些类 517 删除任务和教师的控件及逻辑 提交报课审核信息 530 完善 ...

  9. Python之路Day19-Django(二)

    本节内容概要: 一.路由系统URL 二.视图 三.模板 四.ORM操作 问题1:Django请求生命周期 -> URL对应关系(匹配) -> 视图函数 -> 返回用户字符串 -> ...

  10. angular input标签只能单向传递数据的问题

    angularjs input标签只能单向传递数据的问题 <ion-view title = "{{roomName}}" style = "height:90%; ...