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

需求:

1.jquery.js

2.jquery-ui.custom.js

3.jquery.cookie.js

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

$(function(){
$("#tree").dynatree({ //tree生成树形结构所在的节点的ID如<div id="tree"></div>
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
});
});

以上是基本用法。

从服务器返回数据的格式一般为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. 同步机制 note

    1.信号量与互斥体的不同之处: 不需要由最初获取它的那个线程来释放. 信号量可以用来调停对资源池的访问. 2. 条件变量: 允许任意复杂的条件表达式作为等待条件,允许更复杂的调度策略.

  2. 用wget命令下载jdk

    Oracle官网上下载jdk,需要点击accept licence的才能下载,使用下面的命令,直接可以下载.wget --no-check-certificate --no-cookies --hea ...

  3. clientX .offsetX .screenX x 的区别

    clientX 设置或获取鼠标指针位置相对于当前窗口的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条. clientY 设置或获取鼠标指针位置相对于当前窗口的 y 坐标,其中客户区域不包括窗口自 ...

  4. jQuery的选择器中的通配符

    (1)通配符: $("input[id^='code']");//id属性以code开始的所有input标签 $("input[id$='code']");// ...

  5. C语言-占位符

     %a                浮点数.十六进制数字和p-记数法(C99) %A 浮点数.十六进制数字和p-记法(C99) %c 一个字符 %d 有符号十进制整数 %e 浮点数.e-记数法 %E ...

  6. VS2015 RTM与ASP.NET 5 RC1之坑

    最近Asp.Net 5的RC1出来了 VS2015的Update1也开始进入RC阶段 嗯,微软尿性,是时候转移到VS2015了 开始踩坑之旅 装好VS2015后,当然是开始折腾ASP.Net 5嘛 建 ...

  7. Drawing in Singapore

    说到画画,其实很多人都会画.只是很多人都把这种潜能给埋起来了,没有特意的去开发出来.且不论画的好与不好,好看与不好看.自己把自己所想的东西方式表达出来,画画是一种方式.我不是科班出身,全凭自己感觉来的 ...

  8. JQuery实现Ajax应用

    将自己之前在印象笔记的笔记搬家了~ 1.使用 load()方法异步请求数据,通过Ajax 请求加载服务器中的数据,并把返回的数据放置到指定的元素中,它的调用格式为: load(url,[data],[ ...

  9. Odoo 二次开发教程(三)-第一个Model及Form、Tree视图

    创建完我们的模块,接下来我们就要为我们的模块添加一些对象.今天我们将要创建一个学生对象(tech.student)和一些基本的属性,并将用form和tree视图将其展示出来: 一. 创建tech.st ...

  10. CF2.C(二分贪心)

    C. Road to Cinema time limit per test 1 second memory limit per test 256 megabytes input standard in ...