dtree 数据树文档 - layui.dtree
layui应用日益广泛的情况下,开发者对"树"这种特殊数据结构的需求日益增多,而layui-dtree的出现,极大程度的满足了各类人群对于树的不同追求。dtree发展到现在,可以总结为7大块核心功能:异步加载、复选框、菜单栏、工具栏、iframe加载、定制化换肤、下拉树等,你所见到市面上开源树的功能,dtree几乎全部囊括在内,只待你一一发掘,让她在你的项目中发光。
如何选择版本:dtree发展到现在,已经更新了许多的版本,但是dtree不会安于现状,将会持续更新。
如果你是喜欢最新的版本,或具有敏锐的发现bug的嗅觉,或是希望加入到dtree的测试队伍,或是最新版中有一个内容是你正好需要的,你可以在下方或者右上角选择(git最新版)去gitee进行下载。
如果你是喜欢稳定的版本,并且具有较强的耐心,你可以下载发布的最新的(正式版本)。
去gitee上下载,获取最新的内测版!(记得不要忘了Star哦~~~)(下载时请仔细阅读readme文件)
gitee地址:https://gitee.com/miniwatermelon/DTreeHelper
github地址:https://github.com/mini-watermelon/DTreeHelper
组件官方地址:https://fly.layui.com/extend/dtree/
组件讨论地址(v2.4.5):https://fly.layui.com/jie/43868/
组件讨论地址(v2.5.0):https://fly.layui.com/jie/52635/
模块加载名称:dtree
快速使用

创建一个dtree实例最简单的方式是,在页面放置一个元素 <ul id="demoTree" class="dtree" data-id="0"></ul>,然后通过 dtree.render() 方法指定该容器,如下所示:

    你已经看到了一个简单树的基本样子,你一定迫不及待地想知道它的使用方式。下面就是它对应的代码:

    								  <link rel="stylesheet" href="layui/css/layui.css">
    								  <link rel="stylesheet" href="layui_ext/dtree/dtree.css">
    								  <link rel="stylesheet" href="layui_ext/dtree/font/dtreefont.css">
    
    								  <script type="text/javascript" src="layui/layui.js""></script">
    								
    								  layui.extend({
    								    dtree: '{/}layui_ext/dtree/dtree'   // {/}的意思即代表采用自有路径,即不跟随 base 路径
    								  }).use(['dtree','layer','jquery'], function(){
    								    var dtree = layui.dtree, layer = layui.layer, $ = layui.jquery;
    
    								    // 初始化树
    								    var DemoTree = dtree.render({
    								      elem: "#demoTree",
    								      data: demoTree, // 使用data加载
    								      url: "../json/case/demoJson.json" // 使用url加载(可与data加载同时存在)
    								    });
    
    								    // 绑定节点点击
    								    dtree.on("node('demoTree')" ,function(obj){
    								      layer.msg(JSON.stringify(obj.param));
    								    });
    								  });
    
    								

    一切都并不会陌生:绑定容器、设置数据接口、剩下的…就交给 dtree 吧。你的牛刀是否早已饥渴难耐?那么不妨现在就去小试一波吧。

    标签参数一览表

    树的ul元素上,与树相关的设置的属性 <ul id="demoTree" class="dtree" data-id="0" data-value="001"></ul>,如下所示:

    参数名称:红色:重要参数,黑色:可选参数

    参数说明示例
    id 树绑定的元素ID,唯一值,后面的事件监听也需要绑定ID,后续所有基于树的操作都是根据这个ID来绑定关联的。 "demoTree"
    class 样式,一般不需要修改 "dtree"
    data-id 树的加载数据中,根节点对于的parentId的值,如设置了dataFormat:"list",则此属性必输 "0"
    data-value
    (v2.5.5新增)
    下拉树的初始值,一般为数据的ID,树会记录这个值并返回对应的context显示 "001"
    基础参数一览表

    基础参数并非所有都要出现,有必选也有可选,结合你的实际需求自由设定。

    下面是目前 dtree 模块所支持的全部基础参数一览表,我对重点参数进行了的详细说明,你可以点击下述表格最右侧的“示例”去查看

    参数名称:红色:重要参数,黑色:可选参数,灰色:不需要配置项

    类型释义:String:字符串,Number:数字,Dom:jquery选择器选中的元素,Boolean:布尔类型值,Object:JSON对象,Array:字符串数组 / JSON数组

    参数类型说明默认值可选值示例
    基础参数
    elem String 树绑定的元素ID,唯一值,后面的事件监听也需要绑定ID,但不需要带#号。 - - "#demoTree"
    obj Dom 树绑定的jquery元素。 $(elem) 自定义Dom $("#demoTree")
    width
    (v2.5.5新增)
    String 定义树组件的宽度 "260" "100%" / "320" "320"
    height
    (v2.5.4新增)
    String 定义树组件的高度,与table组件的同名属性用法一致。使用时建议将外层div容器的overflow:auto。 "" "200" / "full-320" "full-320"
    scroll String 树的上级div容器,让树可以显示滚动条的div容器。 "#treeDiv" - 详见scroll
    accordion
    (v2.5.0新增)
    Boolean 开启手风琴模式。开启之后,initLevel参数设置无效(默认为1,不开启该参数的话默认为2且可以设置) false true / false true
    initLevel String/Number 默认展开层级,当该值大于level时,则会展开树的节点,直到不大于当前待展开节点的level。 2 1 / 2 / 3 / 4 / 5 / ... / 999 5
    type String 加载方式,"load"为增量加载,"all"为全量加载。 "load" "load" / "all" "all"
    cache Boolean 数据缓存,开启后,当节点收缩后展开时,不会重新访问url。 true true / false false
    record
    (v2.4.5_finally新增)
    Boolean 数据记录模式,开启后,用于记录用户提供的JSON数据串中,指定当前节点的JSON数据(排除树必须的字段)。 false true / false true
    load
    (v2.4.5_finally新增)
    Boolean 加载遮罩,开启后,初始化加载和加载子节点时,会出现遮罩层。 true true / false false
    none
    (v2.5.0新增)
    String 用于定于树初始化未加载节点时的提示文字。 无数据 - 无数据
    数据参数
    data Array 树数据参数,指定该参数后树的第一次加载不会访问异步数据接口(url)。该参数的数据格式即为标准数据格式中data的内容。 - - [{},{},{}...]
    url(等) String 异步数据接口相关参数。其中 url 参数为必填项 - - 详见异步数据接口规范
    树样式风格图标参数
    line
    (v2.5.0新增)
    Boolean 开启树线 false true / false true
    skin String 树主题。详见参数释义 "theme" "theme" / "layui" / 用户自定义 "zdy" / 更多请看图标及配色方案(自定义主题)
    ficon String / Array 一级图标样式,
    一级图标非叶子节点: 0:文件夹,1:方形加减,2:三角形,-1:不显示一级图标非叶子节点
    一级图标叶子节点:0:文件夹,1:人员,2:机构,3:报表,4:信息,5:叶子,6:勋章,7:文件,8:小圆点,9:齿轮,10:星星, -1:不显示一级图标叶子节点。
    "8" "-1" / "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" / "10" "3" / ["0", "6"] / "-1" / ["-1", "2"]
    icon String / Array 二级图标样式,
    二级图标非叶子节点:0:文件夹,1:方形加减,2:三角形,-1:不显示二级图标非叶子节点
    二级图标叶子节点:0:文件夹,1:人员,2:机构,3:报表,4:信息,5:叶子,6:勋章,7:文件,8:小圆点,9:齿轮,10:星星, -1:不显示二级图标叶子节点。
    "5" "-1" / "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" / "10" "3" / ["0", "6"] / "-1" / ["-1", "2"]
    nodeIconArray Object 用户自定义非叶子节点图标集合,作用于一级、二级节点,定义该属性会扩展组件的内置属性。 一级节点默认使用编号为"1"的图标集;
    二级节点认使用编号为"0"的图标集。
    详见参数释义 {"3" : {"open" : "demo-open" , "close" : "demo-close"}}
    leafIconArray Object 用户自定义叶子节点图标集合,作用于最后一级、二级节点,定义该属性会扩展组件的内置属性。 一级节点默认使用编号为"8"的图标;
    二级节点认使用编号为"5"的图标。
    详见参数释义 {"11" : "demo-class"}
    iconfont
    (v2.5.0新增)
    String / Array 使用字体集。 "dtreefont" "dtreefont" / ["dtreefont", "layui-icon"] ["dtreefont", "layui-icon", "iconfont"]
    iconfontStyle
    (v2.5.0新增)
    Object / Array 具体某个元素使用的字体样式集。 详见参数释义 - -
    扩展模块参数
    checkbar(等) Boolean 开启复选框模式 false true / false 详见复选框配置
    menubar(等) Boolean 开启菜单栏 false true / false 详见菜单栏配置
    toolbar(等) Boolean 开启工具栏(可编辑模式) false true / false 详见工具栏配置
    useIframe(等) Boolean 加载iframe false true / false 详见iframe加载配置
    select
    (v2.5.5新增)
    Boolean 开启下拉树模式,无法设置该属性,如果使用renderSelect方式渲染,则该值为true false - 详见select加载配置
    重要内置参数(无需配置)
    temp Array 内置交换变量,该变量仅对详细阅读过dtree源码的开发者使用,一般情况下不需要使用,也无需配置。 - - -
    bak String 内置变量,备份Html。 - - -
    node Object 当前选中节点数据 详见参数释义 - -
    checkbarNode Array 复选框标记的全部节点数据集,即为node的集合 - - -
    errData Array 记录在渲染节点时有问题的数据集 详见参数释义 - -
    usefontStyle Object 内置具体某个元素使用的字体样式的JSON集。 - - -
    基础参数释义
    elem和obj的区别
    elem:树绑定的元素ID。
    obj:树绑定的DOM。
    使用elem元素可以绑定已经在页面中存在的元素,而如果是页面中点击某个按钮生成的元素的话,则可以用obj来指定,这在使用layer.open()中打开一个树极为有效,它可以规避元素在生成之前被绑定从而找不到的问题。最终组件会将elem转换为obj属性,elem和obj属性必须指定一个,如果同时指定,则优先obj属性的配置项
    									dtree.render({
    									  elem: "#elemTree",
    									  url: '/elemTree/elemTree.json'
    									});
    								
    									layer.open({
    									  type: 1,
    									  title: "目录",
    									  content: '<ul id="objTree" class="dtree" data-id="0"></ul>',
    									  area:["180px", "500px"]
    									  success: function(layero, index){
    									    var DTree = dtree.render({
    									      obj: $(layero).find("#objTree"),
    									      url: '/objTree/objTree.json'
    									    });
    									  }
    									});
    								
    scroll

    当你使用的是默认的右键菜单生成的toolbar时,我们强烈建议你配置这个参数,如使用的是别的toolbarWay,则该参数无需配置。

    该参数是一个元素选择器的名称,可以是id选择器,也可以是class选择器,为什么需要配置这个元素,因为组件加载时,在页面中一般来说不仅仅只有一个ul元素,它必然会被一个div包裹着,而这个div可以让组件在内部自由加载,滚动等,我们需要绑定的就是这个div。当你使用了toolbar时,我们强烈建议你的dom格式为:

    									// 给容器指定一个div,设置它的高度,并设置滚动条自动加载
    									
      // 那么你的js代码既可以如此写: dtree.render({ elem: "#demoTree", url: "../json/case/demo.json", scroll:"#toolbarDiv", // 绑定div元素 toolbar:true });

      再次强调,使用的是默认的右键菜单生成的toolbar时,该元素必须配置,因为它会直接影响到右键菜单的生成位置!!!

      skin

      满足更多人对树的不同展示,组件内置了3套风格:layui风格 / laySimple / 默认风格,内置主题会指定不同的图标和样式的默认值:

      一般来说,主题都内置好的属性使用者无需在指定图标等参数,当然,一切都是可自定义的。

      									{
      									 line: false, // 无树线
      									 ficon:["0","8"],  // 设定一级图标样式。0表示方形加减图标,8表示小圆点图标
      									 icon: ["0","5"] // 设定二级图标样式。0表示文件夹图标,5表示叶子图标
      									}
      									主题颜色:  #d2d2d2, #eaeceb, black, orange, #fe7786
      								

      主题颜色:

      									{
      									 line: true, // 有树线
      									 ficon: ["0","7"],  // 设定一级图标样式。0表示方形加减图标,7表示文件图标
      									 icon: "-1" // 不设定二级图标样式。
      									}
      									主题颜色:#666, #5FB878
      								

      主题颜色:

      									{
      									 line: false, // 无树线
      									 ficon: ["1","-1"],  // 设定一级图标样式。1表示三角形图标,-1表示不设置叶子节点图标
      									 icon: "-1" // 不设定二级图标样式。
      									}
      									主题颜色:  #d2d2d2, #eaeceb, #01AAED, #393D49
      								

      主题颜色:

      nodeIconArray

      模块内已预定义好了一套展示方式,一般不需要用户自定义,但如果用户需要自定义图标,则需要满足如下的配置方式:

      									var nodeIconArray = {
      									  "-1": {"open": "dtree-icon-null-open", "close": "dtree-icon-null-close"}, //未指定
      									  "0" : {"open": "dtree-icon-wenjianjiazhankai", "close": "dtree-icon-weibiaoti5"}, //文件夹
      									  "1" : {"open": "dtree-icon-jian", "close": "dtree-icon-jia"},  //方形+-
      									  "2" : {"open": "dtree-icon-xiangxia1", "close": "dtree-icon-xiangyou"}  //三角形
      									};
      								

      预定义的图标一览:

      									dtree.render({
      									  nodeIconArray: {"名称从3开始": {"open": "展开样式class", "close": "收缩样式class"}}
      									});
      								

      class为图标样式,dtree已准备好了丰富的图标,只需从中选取你喜欢的图标样式即可。

      leafIconArray

      模块内已预定义好了一套展示方式,一般不需要用户自定义,但如果用户需要自定义图标,则需要满足如下的配置方式:

      									var leafIconArray = {
      									  "-1": "dtree-icon-null", //未指定
      									  "0" : "dtree-icon-weibiaoti5", //文件夹
      									  "1" : "dtree-icon-yonghu", //人员
      									  "2" : "dtree-icon-fenzhijigou", //机构
      									  "3" : "dtree-icon-fenguangbaobiao", //报表
      									  "4" : "dtree-icon-xinxipilu", //信息
      									  "5" : "dtree-icon-shuye1", //叶子(二级图标叶子节点默认样式)
      									  "6" : "dtree-icon-caidan_xunzhang", //勋章
      									  "7" : "dtree-icon-normal-file", //文件
      									  "8" : "dtree-icon-dian", /小圆点(一级图标叶子节点默认样式)
      									  "9" : "dtree-icon-set-sm", //齿轮
      									  "10" : "dtree-icon-rate" //星星
      									};
      								

      预定义的图标一览:

      									dtree.render({
      									  leafIconArray: {"名称从11开始": "样式class"}
      									});
      								

      class为图标样式,dtree已准备好了丰富的图标,只需从中选取你喜欢的图标样式即可。

      iconfont 和 iconfontStyle

      iconfont: 该参数为具体某个元素使用的字体样式集,默认是使用组件提供的dtreefont图标库中的图标组成的集合。在一切都默认的基础下,所有的图标都会从该图标库中取得,包括用户自定义的iconClass、自定义menubar、自定义toolbar。如需要扩展该属性,则设置的值必须将dtreefont放在第一个位置。

      									dtree.render({
      									  iconfont: ["dtreefont", "layui-icon"]  // 必须将dtreefont放在第一位,后面的图标库即可由用户自定义。
      									});
      								

      如果你实在是不想用dtreefont图标库,你可以只配置iconfont:"你自己的图标库",但是你得确保iconfontStyle属性的每个配置项都有值。自定义的iconClass、自定义menubar、自定义toolbar使用的图标库为iconfont属性值配置的第一个图标库

      									dtree.render({
      									  iconfont: ["layui-icon", "iconfont"]  // 不使用dtreefont,则用户自定义的iconClass为该属性的第一个图标库(即在layui-icon中选择图标)。
      									  iconfontStyle: [{...}] // 不使用dtreefont,则必须配置iconfontStyle参数,参数释义请往下看
      									});
      								

      iconfontStyle: 该参数为暴露树内部使用的图标集,默认是使用组件提供的dtreefont图标库。原则上该属性与iconfont属性为一一对应关系,即如果iconfont配置的是一个字符串,则该属性即为一个Object对象;如果iconfont配置的是字符串数组,则该属性即为一个JSON数组。

      iconfontStyle: 最终该配置项中所有的配置,会被归纳到内置的usefontStyle属性中,即无论该配置项是JSON对象还是JSON数组,内置的元素都与usefontStyle对应。

      									var usefontStyle = {  //树最终使用的图标集合
      									  fnode:{  //一级节点
      									    node:{  //非叶子节点
      									      open:"",  //节点展开
      									      close:""  //节点关闭
      									    },
      									    leaf:""  //叶子节点
      									  },
      									  snode:{  //二级节点
      									    node:{  //非叶子节点
      									      open:"",  //节点展开
      									      close:""  //节点关闭
      									    },
      									    leaf:""  //叶子节点
      									  },
      									  checkbox:{  //复选框
      									    on:"",  //复选框选中
      									    out:"",  //未选中
      									    noall:""  //半选
      									  },
      									  menubar:{  //菜单栏
      									    movedown:"",  //全部展开
      									    moveup:"",  //全部收缩
      									    refresh:"",  //刷新
      									    remove:"",  //删除
      									    search:""  //搜索
      									  },
      									  menubarExt:"",  //扩展菜单栏
      									  toolbar:{  //工具栏
      									    menubar:{  //依附在菜单栏的工具栏
      									      movedown:"",  //全部展开
      									      moveup:"",  //全部收缩
      									      refresh:"",  //刷新
      									      remove:"",  //删除
      									      search:""  //搜索
      									    },
      									    menubarExt:"",  //依附在菜单栏的扩展菜单栏
      									    add:"",  //添加
      									    edit:"",  //编辑
      									    del:""  //删除
      									  },
      									  toolbarExt:""  //扩展工具栏
      									};
      								

      上述的这些属性中,并不是所有都得配置,你只需要配置你想更改的图标即可,其他未被显示定义的属性均会以默认值的形式最终被赋值。

      									dtree.render({
      									  iconfont: ["dtreefont", "layui-icon"]  // 使用dtreefont和layui-icon图标库。
      									  iconfontStyle: [{  // 第一个JSON
      									    fnode:{
      									      node:{
      									        open: "dtree-icon-jia1"  // 这里从dtreefont图标库中选择该图标,当节点展开时,一级图标使用
      									      }
      									    }
      									  },{   // 第二个JSON
      									    checkbox:{  // 这里从layui-icon图标库中选择
      									      noall:"layui-icon-rate-half",  // 复选框半选
      									      on:"layui-icon-rate-solid",  // 复选框选中
      									      out:"layui-icon-rate"  // 复选框未选中
      									    }
      									  }]   // 其他的未定义的图标均从iconfont数组中第一个图标库的图标中选择树默认的图标。
      									});
      								

      树使用的图标总结:

      树使用的图标优先级排序: 自定义的iconClass > iconfontStyle配置项中的指定图标 > ficon 和 icon配置的图标 > 内置skin中默认使用的ficon 和 icon。

      dot属性设置决定一级图标的叶子图标是否显示。

      自定义的iconClass、自定义menubar、自定义toolbar使用的图标库为iconfont属性中配置的第一个图标库。

      iconfontStyle属性可以扩展树任意位置使用的图标。

      node

      组件内置属性,当选中树节点时,会将树的当前选中节点的的结果放到该参数中,包含当前节点的全部信息

      									var node = {
      									  nodeId: "", //节点ID
      									  parentId: "", //父节点ID
      									  context: "", //节点内容
      									  leaf: "", //是否叶子节点
      									  level: "", //层级
      									  spread: "", //节点展开状态
      									  dataType: "", //节点标记
      									  checked: "", //节点复选框选中状态
      									  initchecked: "", //节点复选框初始状态
      									  basicData: "", //用户自定义的记录节点数据
      									  recordData: "", //当前data数据
      									};
      								
      errData

      组件内置属性,树在递归用户数据发生问题时,记录出现问题的数据。

      为什么会有这个属性?因为考虑到数据的不可控性,往往有的使用者在提供数据时,会提供一些id与parentId相同的数据,而树在处理这种数据的上下级关系时,有可能会出现无限递归的现象,导致浏览器直接崩溃。因此我们考虑到了这一点,在过滤掉这层错误数据的同时记录这条数据,方便给用户提供数据错误的依据,但也只是暂时存储,如果你不想显示错误信息的话,该属性记录的数据也会被很快的抹除。

      在数据格式为list的数据中,如果数据发生错误,则错误的数据不会出现在页面上。而在levelRelationship的数据中,如果数据发生错误,错误的数据会被记录,但数据也能被正常显示。关于数据格式的问题请继续往下看~

      异步数据接口规范

      数据的异步请求由以下几个参数组成:

      参数名称:红色为重要参数,黑色为可选参数

      类型释义:String:字符串,Dom:jquery选择器选中的元素,Boolean:布尔类型值,Object:JSON对象,Array:字符串数组 / JSON数组,Function:回调函数

      参数类型说明默认值可选值示例
      url String 数据接口地址,默认请求会带上defaultRequest和request中的参数 - - "/objTree/objTree.json"
      async Boolean 同步或异步请求,默认异步。 true true / false false
      asyncLoad
      (v2.5.7新增)
      Array 异步加载初始加载层级数组。 [] - ["003","003001"]
      headers Object ajax请求的headers。 {} - -
      method String 接口http请求类型。 "POST" "GET" / "POST" "GET"
      dataType String 参数类型 "json" "string" / "json" "string"
      contentType
      (v2.5.0新增)
      String 发送信息至服务器时内容编码类型 "application/x-www-form-urlencoded" - -
      withCredentials
      (v2.5.5新增)
      Boolean 生成跨域的XHR对象。 false true true
      defaultRequest Object 默认请求参数。 详见defaultRequest - {nodeId : "id"}
      request Object 用户自定义请求参数。 详见request - {"username" : "admin"}
      filterRequest
      (v2.4.5_finally新增)
      Array 过滤树自动发起的请求中你不需要的参数。 - - 详见filterRequest
      response Object 返回json格式 详见response - {statusCode : 0}
      beforeSend
      (v2.5.7新增)
      Function 树发送ajax请求前的回调函数,携带三个参数,
      ajax:当前操作本身的options数据,
      XMLHttpRequest:XMLHttp对象,
      self:当前ajax请求真正携带的options项。
      beforeSend(ajax, XMLHttpRequest:XMLHttp, self){return true;} - beforeSend(ajax, XMLHttpRequest:XMLHttp, self){return false; //取消本次请求}
      (可以改变形参)
      success Function 加载完毕后,树解析前的回调函数,携带三个参数,
      res:当前异步加载的数据,
      $obj:当前组件的根节点的JQuery对象,
      first:是否首次加载。
      data和url加载均可使用,
      增量加载时,加载子节点时也可以回调该方法
      success:function(res, $obj, first){} - success:function(data, ul, first){}
      (可以改变形参)
      done Function 加载完毕后,树解析后的回调函数,携带三个参数,
      res:当前异步加载的数据,
      $obj:当前组件的根节点的JQuery对象,
      first:是否首次加载。
      data和url加载均可使用,
      增量加载时,加载子节点时也可以回调该方法
      done:function(res, $obj, first){} - done:function(data, ul, first){}
      (可以改变形参)
      dataStyle String 用于用户配置layui通用的json数据风格,layuiStyle:layui风格,defaultStyle:默认风格 defaultStyle layuiStyle layuiStyle
      dataFormat String 用于用户配置的data的数据格式,list:数组格式,levelRelationship:层级关系格式。详见dataFormat levelRelationship list list
      errDataShow
      (v2.5.0新增)
      Boolean 用于是否在递归数据出现错误后,显示错误信息 false true / false true
      formatter
      (v2.5.0新增)
      Object 用于数据过滤 详见formatter - -
      error
      (v2.5.0y新增)
      Function 用于异步加载中出现异常时的用户自定义函数,携带三个参数,参数含义请参考JQuery帮助文档 - - function(XMLHttpRequest, textStatus, errorThrown){}
      complete
      (v2.5.0y新增)
      Function 用于异步加载全部完成后用户的自定义函数,携带两个参数,参数含义请参考JQuery帮助文档 - - function(XMLHttpRequest, textStatus){}
      data加载和url加载

      只指定data:树会加载data中的内容,且树一定是全量加载的。此时你需要在树的配置项中指定type:"all",以免在最后一级节点加载完毕之后还会出现继续加载的情况。

      只指定url:树会加载url链接,获取内容,此时树默认是增量加载的,当你点击任一非子节点时,如果该节点还未被加载子节点,则树会给当前相同的url再次发送请求以获取子节点的数据。

      既指定data又指定url:树第一次会加载data中的内容,当你点击任一非子节点时,如果该节点还未被加载子节点,则树会向url发送请求以获取子节点的数据。

      defaultRequest
      树的默认发起请求参数格式,最后会将value作为参数名称传递
      									var defaultRequest = {
      									  nodeId: "nodeId", //节点ID
      									  parentId: "parentId", //父节点ID
      									  context: "context", //节点内容
      									  leaf: "leaf", //是否叶子节点
      									  level: "level", //层级
      									  spread: "spread", //节点展开状态
      									  dataType: "dataType", //节点标记
      									  checked: "checked", //节点复选框选中状态
      									  initchecked: "initchecked", //节点复选框初始状态
      									  basicData: "basicData", //用户自定义的记录节点数据
      									  recordData: "recordData", //当前data数据(排除basicData和children字段)(v2.4.5_finally版本新增)
      									};
      								

      以上参数值,最终会作为参数名称,传递到后台进行数据查询。如果用户需要更改默认参数,则可以如此:dtree.render({dequestRequest : {nodeId : "mynodeId"}}); 则进行参数拼接时,组件就会根据你配置的参数值,替换默认的参数值,进行拼接,然后传递到后台进行数据查询。

      request

      除了默认参数,用户可以定义其他的一些固定参数,比如:dtree.render({request : {"username" : "用户名"}}) 。组件进行参数拼接时,则会将该属性中的串拼接到url,然后传递到后台进行数据查询。

      filterRequest

      初始化、动态加载子节点、和访问iframe时,默认情况下树都会自动的拼上defaultRequest和request中配置的参数。如果你觉得参数太过于臃肿,很多的参数你用不上的话,这个参数就派上用场了。

      该参数是一个数组,配置项为你在defaultRequest中配置的映射的value 和 request中配置的映射key。 是不是难以理解?请看示例

      									var DTree = dtree.render({
      									  elem: "#demo",
      									  url: "/demoTree.json",
      									  defaultRequest:{nodeId:"tree.id",parentId:"tree.pId"},
      									  request:{username:"admin"},
      									  filterRequest:["context","tree.id","username"]  // context:树默认的参数,详细可见defaultRequest中的默认参数; tree.id:在当前defaultRequest中配置的nodeId的value;username:在当前request中配置的key
      									})
      								

      打开浏览器的调试模式,你可以看到,配置在filterRequest中的字符,将不会出现在你的请求中。

      response

      树的默认返回参数格式,默认是一个json对象,以下则为json对象中的key

      									var response = {
      									  statusName: "code", //返回标识(必填)
      									  statusCode: 200, //返回码(必填)
      									  message: "message", //返回信息(必填)
      									  rootName: "data", //根节点名称(必填)
      									  treeId: "id", //节点ID(必填)
      									  parentId: "parentId", //父节点ID(必填)
      									  title: "title", //节点名称(必填)
      									  ficonClass: "ficonClass", //自定义一级图标class(v2.5.4版本新增)(非必填)
      									  iconClass: "iconClass", //自定义二级图标class(非必填)
      									  childName: "children", //子节点名称(默认数据格式必填)
      									  last: "last", //是否最后一级节点(true:是,false:否,布尔值,非必填)
      									  level: "level", //层级(v2.4.5_finally_beta版本之后,该属性移除)
      									  spread: "spread", //节点展开状态(v2.4.5_finally_beta版本新增。true:展开,false:不展开,布尔值,非必填)
      									  disabled: "disabled", //节点禁用状态(v2.5.0版本新增。true:禁用,false:不禁用,布尔值,非必填)
      									  hide: "hide", //节点隐藏状态(v2.5.0版本新增。true:隐藏,false:不隐藏,布尔值,非必填)
      									  checkArr: "checkArr", //复选框列表(开启复选框必填,默认是json数组。)
      									  checked: "checked", //是否选中(开启复选框,0-未选中,1-选中,2-半选。非必填)
      									  type: "type", //复选框标记(开启复选框,从0开始。非必填)
      									  basicData: "basicData" //表示用户自定义需要存储在树节点中的数据(非必填)
      									};
      								

      disabled:如果配置了该属性为true,则节点复选框不可点击,节点不可点击,节点不可双击,右键菜单不可点击,不可点击加载iframe,无法获取复选框数据,但可进行节点展开/关闭,并通过内置函数获取该节点的数据。

      hide:如果配置了该属性为true,则节点不可选中,节点复选框不可点击,节点不可点击,节点不可双击,右键菜单不可点击,不可点击加载iframe,但可进行节点展开/关闭,可以获取复选框数据,并可以通过内置函数获取该节点的数据。

      以下标准数据格式,即response中的值在标准数据格式中为各参数的键(列出必填项)。

      									{
      									"status":{"code":200,"message":"操作成功"},
      									"data": [{
      									  "id":"001",
      									  "title": "湖南省",
      									  "parentId": "-1",
      									  "checkArr": [{"type": "0", "checked": "0"}],  // 加载复选框必填
      									  "children":[{  // 默认标准数据格式必填
      									    "id":"001001",
      									    "title": "长沙市",
      									    "parentId": "001",
      									    "checkArr": [{"type": "0", "checked": "0"}],
      									    "children":[{
      									      "id":"001001001",
      									      "title": "雨花区",
      									      "parentId": "001001",
      									      "checkArr": [{"type": "0", "checked": "0"}]
      									    }]
      									  }]
      									}]
      									}
      								

      当你配置了dataStyle:"layuiStyle",你就可以使用layui风格的数据格式了,详见左侧数据格式菜单栏。

      dataFormat

      自定义data中的数据格式,这个参数适配于当你不想让后台递归生成层级关系数据,而只想让前端处理一个完整的list时使用,接下来的使用规范,很重要:

      									// 规范1: 页面ul元素必须指定data-id,且data-id为第一级节点的父id。
      									
        // 规范2:加载的数据务必是全量的。如果是非全量数据,务必保证当前数据的被渲染出来的最后一级节点的last属性是false,否则数据也不能在被加载出来了。 // 规范3:当使用dataFormat属性时,不需要配置cache属性,否则会引起不必要的数据加载缓慢问题。
        									{
        									"status":{"code":200,"message":"操作成功"},
        									"data": [
        									  {"id":"001","title": "湖南省","parentId": "0"},
        									  {"id":"002","title": "湖北省","parentId": "0"},
        									  {"id":"003","title": "广东省","parentId": "0"},
        									  {"id":"004","title": "浙江省","parentId": "0"},
        									  {"id":"005","title": "福建省","parentId": "0"},
        									  {"id":"001001","title": "长沙市","parentId": "001"},
        									  {"id":"001002","title": "株洲市","parentId": "001"},
        									  {"id":"001003","title": "湘潭市","parentId": "001"},
        									  {"id":"001004","title": "衡阳市","parentId": "001"},
        									  {"id":"001005","title": "郴州市","parentId": "001"}
        									]
        									}
        								
        formatter

        目前,用户可以在树生成节点时,自己来设置生成的文字属性,可以在formatter中获取过滤函数:

        									var formatter = {
        									  title: function(data) { // 文字过滤,返回null,"",undefined之后,都不会改变原有的内容返回。
        									    return data.title;
        									  }
        									};
        								
        扩展参数一览

        复选框栏的配置由以下几个参数组成:

        类型释义:String:字符串,Boolean:布尔类型值,Object:JSON对象

        参数类型说明默认值可选值示例
        checkbar Boolean 启用复选框。 false true / false true
        checkbarLoad String 复选框作用范围,node:所有节点, leaf:最后一级 "node" "node" / "leaf" "leaf"
        checkbarType String 复选框选中形式: all:子集选中父级也选中, no-all:子集选中父级半选中,子集全选父级选中, p-casc:父级选中子集全选,子集无法改变父级选中状态, self:没有任何级联关系, only:仅存一个 "all" "all" / "no-all" / "p-casc" / "self" / "only" "no-all"
        checkbarData String 复选框记录数据类型形式, change: 记录变更数据,choose: 记录选中数据,all: 记录全部数据,halfChoose:记录选中和半选中的数据 "choose" "choose" / "change" / "all" / "halfChoose" "change"
        checkbarFun Object 复选框事件加载 详见checkbarFun - -
        checkbarFun

        当用户需要使用树的checkbar时,首先需要将checkbar属性的值设置为true,接着在树生成后,可以对树进行:选中,取消选择的操作,当操作被触发后,可以在checkbarFun中获取操作之后的定义的函数:

        									var checkbarFun = {
        									  chooseBefore: function($i, node) { //复选框点击前的回调。
        									    return true;
        									  }
        									  chooseDone: function(checkbarNodesParam) { //复选框点击事件完毕后,返回该树关于复选框操作的全部信息。
        									    return ;
        									  }
        									};
        								

        工具栏的配置由以下几个参数组成:

        类型释义:String:字符串,Boolean:布尔类型值,Object:JSON对象,Array:字符串数组 / JSON数组

        参数类型说明默认值可选值示例
        toolbar Boolean 启用工具栏。 false true / false true
        toolbarWay
        (v2.5.0新增)
        String 工具栏显示方式。"contextmenu":右键菜单,"fixed":固定在节点右侧,"follow":跟随节点 "contextmenu" "contextmenu" / "fixed" / "follow" "fixed"
        toolbarLoad String 工具栏作用域:node:所有节点,noleaf:非最后一级节点,leaf:最后一级 "node" "node" / "noleaf" / "leaf" "leaf"
        toolbarShow Array 工具栏按钮自定义加载: add: 新增, edit:编辑, delete: 删除。详见toolbarShow ["add","edit","delete"] - ["pulldown","pullup"]
        toolbarExt Array 扩展工具栏中的按钮 [] - 详见toolbarExt
        toolbarBtn Array 工具栏基础功能中的内容自定义添加 - - 详见toolbarBtn
        toolbarFun Object 工具栏事件加载 详见toolbarFun - -
        toolbarStyle String toolbar的自定义风格。 { title:"节点", area:["60%","80%"] } - -
        toolbarExt

        该参数是一个一维数组,可以扩展toolbar的按钮:[{}]。{}中的全部内容如下:

        									{
        									  toolbarId: "唯一标识该扩展按钮的ID",
        									  icon: "扩展按钮的自定义图标",
        									  title: "扩展按钮的文字信息",
        									  handler: function(node, $div){}  //扩展按钮的回调函数
        									};
        								
        									dtree.render({
        									  toolbar: true,
        									  toolbarExt:[{toolbarId: "test",icon:"dtree-icon-wefill",title:"我是自定义",handler: function(node){layer.msg(JSON.stringify(node));}}]
        									});
        								
        toolbarShow

        toolbarShow默认情况下是提供三个按钮供用户使用,实际上内置的还有2个按钮,用户可以自由的配置想使用的按钮。

        上面的默认指定可以看出,菜单栏默认是绑定在上方按钮组的,其中的内容即是菜单栏提供的默认功能,以下是对默认功能的解释。

        									"pulldown": "展开当前节点下的全部节点(v2.5.0版本新增)",
        									"pullup": "收缩当前节点下全部节点(v2.5.0版本新增)",
        									"add": "新增节点",
        									"edit": "编辑节点",
        									"delete": "删除节点"
        								
        toolbarBtn

        该参数是一个二维数组,可以指定toolbar页面中展示的内容:[[{}],[{}]] 其中,第一个[{}]表示addToolbar中的内容,第二个表示editToolbar中的内容,{}中的全部内容如下:

        									{
        									  "label": "你的label名称,除type为submit或reset外,必填",
        									  "name": "你的input标签指定的name,除type为submit或reset外,必填",
        									  "type": "类型,可选值有(text、textarea、select、hidden、submit(提交按钮,内部使用,设置无效)、reset(重置按钮)),可不填,默认为text",
        									  "value": "input标签的默认值,可不填,默认为'' ",
        									  "optionsData": "当类型为select时需要填写,表示一个json串,输出select的选项;或为一个function,在return中输出json串。type为select时必填,其他不填",
        									  "id": "你的input标签指定的id,可不填"(v2.5.0版本新增),
        									  "placeholder": "你的input标签的placeholder属性,如不填,则为value值"(v2.5.0版本新增),
        									  "verify": "layui表单校验的属性(lay-verify),可不填"(v2.5.0版本新增),
        									  "defElem": "新增或编辑框中默认的表单和按钮,值为:nowChoose(当前选中), nowChange(当前变更), btn(提交按钮),如非默认请勿设置该属性"(v2.5.0版本新增),
        									  "readonly": "你的input标签是否只读,可不填,默认为false"(v2.5.0版本新增),
        									  "disabled": "你的input标签是否禁用,可不填,默认为false"(v2.5.0版本新增),
        									  "filter": "提交按钮需要使用的lay-filter的值,内部使用,请勿设置"(v2.5.0版本新增)
        									};
        								
        									dtree.render({
        									  toolbar: true,
        									  toolbarBtn: [[{"label":"text1","name":"name1","verify":"required"},{label":"text2","name":"name2","type":"textarea"}],[{"label":"text1","name":"name1","verify":"required|number"},{label":"text4","name":"name4","type":"textarea"}]]
        									});
        								
        toolbarFun

        当用户需要使用树的toolbar时,首先需要将toolbar属性的值设置为true,接着在树生成后,可以对树进行增删改操作,即添加节点,修改节点,删除节点,当操作被触发之后,可以在toolbarFun中获取操作之后的定义的函数:

        									var toolbarFun = {
        									  addTreeNode: function(treeNode, $div) { //添加树节点后调用的函数,用于用户自定义,如未指定则树不会发生变化
        									    console.log(treeNode);
        									    DemoTree.changeTreeNodeAdd(treeNode.nodeId/param/true/false/"refresh"); // 调用内置函数,新增节点后改变节点内容。传入null或false,则树不会发生变化
        									  },
        									  editTreeNode: function(treeNode, $div) { //编辑树节点后调用的函数,用于用户自定义,如未指定则树不会发生变化
        									    console.log(treeNode);
        									     DemoTree.changeTreeNodeEdit(param/true/false); // 调用内置函数,修改节点后改变节点内容。传入false,则树不会发生变化
        									  },
        									  editTreeLoad: function(treeNode) { //编辑树的数据回显,用于打开编辑时,回填数据,用于用户自定义。
        									    console.log(treeNode);
        									     DemoTree.changeTreeNodeDone(param); // 调用内置函数,编辑页打开后显示编辑页内容
        									  },
        									  delTreeNode: function(treeNode, $div){ //删除树后调用的函数,用于用户自定义,如未指定则树不会发生变化
        									    console.log(treeNode);
        									    DemoTree.changeTreeNodeDel(true/false); // 调用内置函数,删除节点后改变节点内容。传入false,则树不会发生变化
        									  },
        									  loadToolbarBefore: function(buttons, treeNode, $div){ // 右键菜单加载前的函数
        									    console.log(buttons);
        									    console.log(treeNode);
        									    return buttons; // 返回按钮组,如不返回则按钮将不会显示。
        									  }
        									};
        								

        treeNode参数,包含toolbarBtn中指定的name和它的值,还有默认元素,如果没有指定toolbarBtn的情况下,treeNode参数如下:

        									{
        									  leaf: true,
        									  level: "当前添加参数的level",
        									  nodeId: "当前添加参数的动态ID",
        									  nodeTitle: "当前添加参数的上级节点名称",
        									  parentId: "当前添加参数的上级节点ID",
        									  addNodeName: "当前添加参数的节点名称",
        									  editNodeName: "当前编辑参数的节点名称,与addNodeName只出现一个"
        									  basicData: "", //节点的basicData,如果没有则无
        									  recordData: "" // 节点的recordData,如果没有配置record则无
        									}
        								

        treeNode.nodeId/param/true/false/"refresh"表示的含义如下:

        参数类型含义
        treeNode.nodeId String 表示给方法回传一个id值,并且这个id值是通过toolbar模块自动生成的
        param JSON 表示给方法回传一个JSON对象,该对象里面的格式就是你渲染树时的单个节点的那一条json的格式
        true/false Boolean true,表示成功,则方法内部自动处理节点;false,表示失败,方法内部会将该新增节点清除。编辑节点还原,删除节点恢复
        refresh String 表示新增完成后,局部刷新。
        									var DemoTree = dtree.render({
        									  toolbar: true,
        									  toolbarFun: {
        									    addTreeNode: function(treeNode, $div) {
        									      // 此处执行ajax,新增节点
        									      $.ajax({ ..., success: function(){
        									        DemoTree.changeTreeNodeAdd(true); }
        									      }) // 内容省略
        									    }
        									  },
        									});
        								

        iframe模式配置由以下几个参数组成:

        类型释义:Boolean:布尔类型值,Object:JSON对象

        参数类型说明默认值可选值示例
        useIframe Boolean 是否加载Iframe。 false true / false true
        iframeElem String iframe的ID "" - "#iframe_content"
        iframeUrl String 树关联的iframe地址 "" - "iframeContent.html" / "/load/iframe"
        iframeLoad String 点击哪一层加载iframe: node:所有节点, leaf:默认,最后一级 "leaf" "node" / "leaf "node"
        iframeDefaultRequest Object iframe的默认参数,目的是与加载树的参数不一样 详见defaultRequest - {nodeId : "id"}
        iframeRequest Object iframe的自定义参数,目的是与加载树的参数不一样 详见request - {"username" : "admin"}
        iframeFun Object iframe事件加载 详见iframeFun - -
        iframeFun

        当用户点击节点加载iframe后,可以在iframeFun中获取操作之后的定义的函数

        									var iframeFun = {
        									  iframeDone: function(iframeParam){ //iframe加载完毕后,用于用户自定义事件
        									    return ;
        									  }
        									};
        								
        									var DemoTree = dtree.render({
        									  useIframe: true,
        									  iframeElem: "#iframeId",
        									  iframeUrl: "/demo/iframeurl"
        									  iframeFun: {
        									    iframeDone: function(iframeParam){ //iframe加载完毕后,用于用户自定义事件
        									      console.log(iframeParam);
        									      return ;
        									    }
        									  }
        									});
        								

        select模式配置由以下几个参数组成:

        类型释义:Boolean:布尔类型值,Object:JSON对象

        参数类型说明默认值可选值示例
        select
        (v2.5.5新增)
        Boolean 开启下拉树模式,无法设置该属性,如果使用renderSelect方式渲染,则该值为true。 false - -
        selectInitVal
        (v2.5.5新增)
        String 下拉树初始ID值 "" - "001"
        selectTips
        (v2.5.5新增)
        String 下拉树无值提示值 "请选择" - "我是一个提示"
        selectInputName
        (v2.5.5新增)
        Object 下拉树内部表单标签的name键值对 {nodeId: this.obj[0].id + "_select_nodeId"} - {nodeId: "id",context: "title"}

        select模式实际上可以配置所有的基础参数,具体使用方法可以参考右侧-使用下拉树

        selectInputName(v2.5.5新增)

        用于配置select中表单的键值对,key值为树中可以获取到的值的名称,value值为表单的name

        如果没有配置defaultRequest,则该配置的key与node一致,否则,key与defaultRequest映射的value一致。

        							{
        							  nodeId: "", //节点ID
        							  parentId: "", //父节点ID
        							  context: "", //节点内容
        							  leaf: "", //是否叶子节点
        							  level: "", //层级
        							  spread: "", //节点展开状态
        							  dataType: "", //节点标记
        							  checked: "", //节点复选框选中状态
        							  initchecked: "", //节点复选框初始状态
        							  basicData: "", //用户自定义的记录节点数据
        							  recordData: "", //当前data数据
        							}
        						
        							dtree.render({
        							  elem: "#selTree4",
        							  url: "../json/case/asyncTree1.json",
        							  selectInputName: {
        							    nodeId: "id",  // 这里,内置表单名称为id,值为nodeId的值
        							    context: "title"  // 这里,内置表单名称为title,值为context的值
        							  }
        							});
        						
        基础方法

        基础方法均以dtree.开头,后面接上方法名。

        下面是目前 dtree 模块所支持的全部基础方法一览表

        方法名称:红色为重要方法

        类型释义:String:字符串,Object:JSON对象

        方法名称参数类型说明用法示例
        set
        (v2.5.5新增)
        Object 全局配置,与table组件的全局配置概念一致。在同一次引用中,dtree的公共属性指定,在render中可以不指定。
        										// 这段代码可以直接应用到layuiAdmin-pro中
        										dtree.set({
        										  headers: {access_token: layui.data(setter.tableName).access_token},
        										  withCredentials: true,
        										  error: function(XMLHttpRequest, textStatus, errorThrown){
        										    // 出错则重定向到主页
        										    if(textStatus == setter.response.statusCode.logout){
        										      view.exit();
        										    }
        										  }
        										});
        										
        render Object 初始化树
        											var DemoTree = dtree.render({
        											  elem: '#siTree',
        											  url: '/siTree.json',
        											  initLevel: 2,
        											  icon: 3
        											});
        										
        reload String / Object, Object 重新加载
        											dtree.reload(DemoTree, {
        											  url: '/demoTree2.json',
        											  initLevel: 2,
        											  icon: 3
        											});
        										
        renderSelect
        (v2.5.5新增)
        Object 初始化下拉树树
        											var DemoSelectTree = dtree.renderSelect({
        											  elem: '#siTree',
        											  url: '/siTree.json',
        											  selectTips: "我想做一个提示语"
        											});
        										
        click
        (v2.5.0新增)
        String / Object, String 模拟单击事件
        											var DemoTree = dtree.render({
        											  elem: '#siTree',
        											  url: '/siTree.json',
        											  done: function(res, $ul, first){
        											    if(first) {
        											      dtree.click(DemoTree, "001"); // 会自动帮你触发一次对应Id的节点的点击事件
        											    }
        											  }
        											});
        
        										
        getNowParam String / Object 获取当前选中值
        											var param = dtree.getNowParam(DemoTree);
        											console.log(param);
        										
        getParam
        (v2.5.0新增)
        String / Object, String 获取指定节点选中值
        											var param = dtree.getParam("demoTree", "001"); //获取ID为001的节点的值
        											console.log(param);
        										
        getParentParam String / Object, String 获取上级节点值
        											var param = dtree.getParentParam(DemoTree, "001001");
        											console.log(param);
        										
        getAllParentParam
        (v2.5.0新增)
        String / Object, String 获取全部上级节点值
        											var arr = dtree.getAllParentParam(DemoTree, "001001001");
        											console.log(arr);
        										
        getChildParam
        (v2.4.5_finally_beta新增)
        String / Object, String 获取下级节点值集
        											var param = dtree.getChildParam(DemoTree, "dataId");
        											console.log(param);
        										
        changeCheckbarNodes String / Object 判断复选框是否发生变更
        											var flag = dtree.changeCheckbarNodes("demoTree");
        											console.log(flag);
        										
        dataInit String / Object, String 初始化选中节点,并设值
        											var DemoTree = dtree.render({
        											  elem: '#demoTree',
        											  url: '/demoTree.json',
        											  done: function(res, $ul, first){
        											    if(first) {
        											      var params = dtree.dataInit("demoTree", "001");
        											    }
        											  }
        											});
        										
        chooseDataInit String / Object, String / Array 初始化选中复选框,并设值,不会带上任何级联关系
        											var DemoTree = dtree.render({
        											  elem: '#demoTree',
        											  url: '/demoTree.json',
        											  done: function(res, $ul, first){
        											    if(first) {
        											      var params = dtree.chooseDataInit("demoTree", "001,002,003"); // 字符串形式
        											      var params = dtree.chooseDataInit("demoTree", ["001","002","003"]); // 数组形式
        											      var params = dtree.chooseDataInit("demoTree", 123); // 单个赋值可以不带字符串
        											      // 多级复选框
        											      var params = dtree.chooseDataInit("demoTree",[["001001","001002"],["001003","001004"]]);
        											    }
        											  }
        											});
        										
        getCheckbarNodesParam String / Object 获取复选框选中值
        											var params = dtree.getCheckbarNodesParam("demoTree");
        											console.log(params);
        										
        getCheckbarJsonArrParam
        (v2.5.7新增)
        String / Object 获取复选框选中值(基于返回参数)
        											var params = dtree.getCheckbarJsonArrParam("demoTree");
        											console.log(params);
        										
        initNoAllCheck
        (v2.5.0新增)
        String / Object 复选框半选状态初始化设置,用于给初始选中的复选框反选级联关系
        											var DemoTree = dtree.render({
        											  elem: '#demoTree',
        											  url: '/demoTree.json',
        											  done: function(res, $ul, first){
        											    if(first) {
        											      dtree.initNoAllCheck("demoTree");
        											    }
        											  }
        											});
        										
        initAllCheck
        (v2.5.0新增)
        String / Object 复选框选中状态初始化设置,用于给初始选中的复选框反选级联关系
        											var DemoTree = dtree.render({
        											  elem: '#demoTree',
        											  url: '/demoTree.json',
        											  done: function(){
        											    dtree.initAllCheck("demoTree");
        											  }
        											});
        										
        selectVal
        (v2.5.5新增)
        String / String 设置下拉树的初始展示值
        											var DemoTree = dtree.renderSelect({
        											  elem: '#demoTree',
        											  url: '/demoTree.json',
        											  done: function(res, $ul, first)){
        											    if(first) {
        											      dtree.selectVal("demoTree"); // 如不传第二个参数,则树会自动根据当前选中节点回显值
        												  //dtree.selectVal("demoTree", "值");
        											    }
        
        											  }
        											});
        										
        escape String 字符串格式化
        											var html = dtree.escape("需要被格式化的内容");
        											console.log(html);
        										
        unescape String 字符串反格式化
        											var html = dtree.unescape("需要被反格式化的内容");
        											console.log(html);
        										
        serialize
        (v2.5.7新增)
        String, Object 序列化JSON对象
        										var param = dtree.getNowParam("demoTree");
        										//第一个参数为序列化字符串头部字符,第二个参数为JSON对象
        										var data = dtree.serialize("", param);
        										console.log(data);
        										
        version - 获取组件版本信息
        											var v = dtree.version();
        											console.log(v);
        										
        注意事项

        以下列出重复使用dtree.render或使用dtree.reload或使用dtree.renderSelect方法之后对内置属性的影响:

        覆盖:即会重新定义该属性。

        扩展:即会在该属性原有的基础定义上扩展该属性。

        属性影响属性影响属性影响
        基础参数
        initLevel覆盖type覆盖elem覆盖
        accordion覆盖cache覆盖obj覆盖
        record覆盖load覆盖none覆盖
        scroll覆盖width覆盖height覆盖
        数据参数
        data覆盖headers覆盖defaultRequest扩展
        url覆盖method覆盖response扩展
        async覆盖dataType覆盖request覆盖
        contentType覆盖withCredentials覆盖filterRequest覆盖
        asyncLoad覆盖dataFormat覆盖dataStyle覆盖
        success覆盖done覆盖complete覆盖
        error覆盖errDataShow覆盖formatter覆盖
        树样式风格图标参数
        skin覆盖ficon覆盖nodeIconArray扩展
        line覆盖icon覆盖leafIconArray扩展
        iconfont覆盖iconfontStyle覆盖
        复选框参数
        checkbar覆盖checkbarLoad覆盖checkbarType覆盖
        checkbarData覆盖checkbarFun覆盖
        菜单栏参数
        menubar覆盖menubarTips覆盖menubarFun覆盖
        工具栏参数
        toolbar覆盖toolbarStyle覆盖toolbarWay覆盖
        toolbarLoad覆盖toolbarShow覆盖toolbarBtn覆盖
        toolbarExt覆盖toolbarFun覆盖
        iframe模式参数
        useIframe 覆盖iframeElem覆盖iframeDefaultRequest扩展
        iframeUrl覆盖iframeLoad覆盖iframeRequest扩展
        iframeFun覆盖
        下拉树参数
        selectTips覆盖selectInitVal覆盖selectInputName扩展
        事件监听

        事件监听均绑定在on中的方法,用法:dtree.on(“方法名称(树的id)”, function(参数){});

        下面是目前 dtree 模块所支持的事件方法一览表

        方法名称:红色为常用方法

        方法名称回调参数类型说明用法示例
        changeTree Object 树状态改变(收缩/张开)后,用户自定义想做的事情
        											dtree.on("changeTree('demoTree')" ,function(obj){
        											  console.log(obj.param); // 点击当前节点传递的参数
        											  console.log(obj.dom); // 当前节点的jquery对象
        											  console.log(obj.show); // 节点展开为true,关闭为false
        											});
        										
        node Object 单击事件执行完毕后,用户自定义想做的事情
        											dtree.on("node('demoTree')" ,function(obj){
        											  console.log(obj.param); // 点击当前节点传递的参数
        											  console.log(obj.dom); // 当前节点的jquery对象
        											  console.log(obj.childParams); // 当前节点的所有子节点参数
        											  console.log(obj.parentParam); // 当前节点的父节点参数
        											});
        										
        nodedblclick Object 双击事件执行完毕后,用户自定义想做的事情
        											dtree.on("nodedblclick('demoTree')" ,function(obj){
        											  console.log(obj.param); // 点击当前节点传递的参数
        											  console.log(obj.dom); // 当前节点的jquery对象
        											  console.log(obj.childParams); // 当前节点的所有子节点参数
        											  console.log(obj.parentParam); // 当前节点的父节点参数
        											});
        										
        chooseDone Object 用户点击复选框后,用户自定义想做的事情
        											dtree.on("chooseDone('demoTree')" ,function(obj){
        											  console.log(obj.checkbarParams); // 选中的所有复选框的参数
        											});
        										
        iframeDone Object iframe加载完毕后,用户自定义想做的事情,注意:该方法与node方法为互斥方法,在开启iframe功能后,如果点击节点加载了iframe则会回调该方法,如没加载,则会回调node方法。
        											dtree.on("iframeDone('demoTree')" ,function(obj){
        											  console.log(obj.iframeParam); // 点击当前节点传递的参数
        											  console.log(obj.dom); // 当前节点的jquery对象
        											});
        										
        changeSelect Object 下拉树面板开闭状态改变后,用户自定义想做的事情,
        (v2.5.6新增)
        											dtree.on("changeSelect('demoTree')" ,function(obj){
        											  console.log(obj.show); // 下拉树面板是否展开
        											  console.log(obj.param); // 点击下拉树选中的参数集
        											});
        										
        内置函数一览

        内置函数大多是组件内部使用的函数,对于一般用户来说使用频率较低,但可重点查阅有示例以及红色标识的函数;

        要使用内置函数,必须先使用组件将树对象定义出来,在用定义出来的对象进行操作,如:var DemoTree = dtree.render({...}); ,则操作DemoTree对象

        函数名称:蓝色为可以被基础方法(点击查看)替代使用的函数,红色为大概率会使用的到的函数,黑色:可以使用的函数,灰色:不建议使用的函数

        类型释义:String:字符串,Number:数字,Dom:jquery选择器选中的元素,Boolean:布尔类型值,Object:JSON对象,Array:字符串数组 / JSON数组

        函数名称参数类型说明用法示例
        树初始化及基本事件函数
        DTree.prototype.escape String 字符串格式化
        											var str = DemoTree.escape("需要被格式化的文本");
        											console.log(str);
        										
        DTree.prototype.unescape String 字符串反格式化
        											var str = DemoTree.unescape("需要被反格式化的文本");
        											console.log(str);
        										
        DTree.prototype.setting Object 设置树的参数 -
        DTree.prototype.reloadSetting Object 重新设置树的参数 -
        DTree.prototype.renderSelect
        (v2.5.5新增)
        Object 初始化下拉树的参数 -
        DTree.prototype.reloadSelectSetting
        (v2.5.6新增)
        Object 重新设置下拉树的基本参数 -
        DTree.prototype.reloadSelectDom
        (v2.5.6新增)
        Object ,重新渲染下拉树的Dom结构 -
        DTree.prototype.autoHeight
        (v2.5.0新增)
        - 自动设置树的高度 -
        DTree.prototype.reload Object 重新加载树 -
        DTree.prototype.init - 初始化树 -
        DTree.prototype.rollbackHtml String 基于备份的Html数据回滚,并且附上选中状态
        											//DemoTree.rollbackHtml("001");
        											//DemoTree.rollbackHtml("001,002,004");
        										
        DTree.prototype.getChild Dom, Array 加载子节点
        											//DemoTree.getChild($div);
        											//DemoTree.getChild($div, arrayJson);
        										
        DTree.prototype.loadTreeInit
        (v2.5.7新增)
        - 初始化加载树 -
        DTree.prototype.loadChildTreeInit
        (v2.5.7新增)
        - 初始化加载子节点 -
        DTree.prototype.dataLoadTree
        (v2.5.7新增)
        - 用data加载树 -
        DTree.prototype.asyncLoadTree
        (v2.5.7新增)
        - 异步加载树 -
        DTree.prototype.loadListTree Object, Object, String/Number, Dom 初始化树或者拼接树(list数据格式初始化) -
        DTree.prototype.queryListTreeByPid String, Object 根据父ID查找list数据中匹配的元素 -
        DTree.prototype.loadTree Object, Dom 初始化树或者拼接树(默认数据格式初始化) -
        DTree.prototype.msgErrData
        (v2.5.0新增)
        - 判断在数据加载时是否存在错误数据,并是否打印错误数据 -
        DTree.prototype.parseData Object 解析data数据 -
        DTree.prototype.getDom String, String, String, Boolean, String, Array, String, String, Boolean, Boolean 新增节点的dom值 -
        DTree.prototype.replaceDom
        (v2.5.0新增)
        Dom, String, String, Boolean, Boolean, Boolean 替换节点的dom值,或指定值 -
        DTree.prototype.getLiItemDom String, String, String, Boolean, String, Array, String, String, Boolean, Boolean, String, String, Boolean 新增节点拼接好的li -
        DTree.prototype.getNoneDom
        (v2.5.0新增)
        - 显示树提示信息 -
        DTree.prototype.dataInit String 初始化节点,用于数据回显
        											DemoTree.dataInit("001");
        										
        DTree.prototype.clickSpread Dom 展开或隐藏节点
        											DemoTree.clickSpread($div);
        										
        DTree.prototype.accordionUL
        (v2.5.0新增)
        Dom 开启手风琴模式时对其他节点的处理 -
        DTree.prototype.cancelNavThis
        (v2.5.0新增)
        Dom 取消选中div
        											DemoTree.cancelNavThis();
        										
        DTree.prototype.setDisabledNodes
        (v2.5.0新增)
        String/Array 设置节点为disabled
        											DemoTree.setDisabledNodes("001,002");
        											DemoTree.setDisabledNodes(["001","002"]);
        											DemoTree.setDisabledNodes(1);
        										
        DTree.prototype.setDisabledNode
        (v2.5.7新增)
        Dom 设置单个节点为disabled
        DTree.prototype.setDisabledAllNodes
        (v2.5.6新增)
        - 设置全部节点为disabled
        											DemoTree.setDisabledAllNodes();
        										
        DTree.prototype.cancelDisabledNodes
        (v2.5.0新增)
        String/Array 将节点的disabled取消
        											DemoTree.cancelDisabledNodes("001,002,003");
        											DemoTree.cancelDisabledNodes(["001","002"]);
        										
        DTree.prototype.cancelDisabledNode
        (v2.5.7新增)
        Dom 设置单个节点取消disabled
        DTree.prototype.getDisabledNodesParam
        (v2.5.0新增)
        String/Array 获取指定disabled节点的值
        											var param = DemoTree.getDisabledNodesParam("001,003");
        											var param = DemoTree.getDisabledNodesParam(["001","002"]);
        											console.log(param);
        										
        DTree.prototype.getAllDisabledNodesParam
        (v2.5.0新增)
        - 获取全部disabled节点的值
        											var param = DemoTree.getAllDisabledNodesParam();
        											console.log(param);
        										
        DTree.prototype.setHideNodes
        (v2.5.0新增)
        String/Array 设置节点为hide
        											DemoTree.setHideNodes("001,002,003");
        											DemoTree.setHideNodes(["001","002"]);
        										
        DTree.prototype.setHideNode
        (v2.5.7新增)
        Dom 设置单个节点为hide
        DTree.prototype.cancelHideNodes
        (v2.5.0新增)
        String/Array 将节点的hide取消
        											DemoTree.cancelHideNodes("001,002,003");
        											DemoTree.cancelHideNodes(["001","002"]);
        										
        DTree.prototype.cancelHideNode
        (v2.5.7新增)
        Dom 设置单个节点取消hide
        DTree.prototype.getHideNodesParam
        (v2.5.0新增)
        String/Array 获取指定hide节点的值
        											var param = DemoTree.getHideNodesParam("001,002,003");
        											var param = DemoTree.getHideNodesParam(["001","002"]);
        											console.log(param);
        										
        DTree.prototype.getAllHideNodesParam
        (v2.5.0新增)
        - 获取全部hide节点的值
        											var param = DemoTree.getAllHideNodesParam();
        											console.log(param);
        										
        DTree.prototype.refreshTree
        (v2.5.0新增)
        - 刷新树
        											DemoTree.refreshTree();
        										
        DTree.prototype.partialRefreshAdd
        (v2.5.0新增)
        Dom , Object 局部刷新树--新增子节点时
        											//DemoTree.partialRefreshAdd($div);
        											//DemoTree.partialRefreshAdd($div, json);
        											//DemoTree.partialRefreshAdd($div, arr);
        										
        DTree.prototype.partialRefreshEdit
        (v2.5.0新增)
        Dom , Object 局部刷新树--编辑当前节点选中节点时
        											//DemoTree.partialRefreshEdit($div);
        											//DemoTree.partialRefreshEdit($div, json);
        										
        DTree.prototype.partialRefreshDel
        (v2.5.0新增)
        Dom 局部刷新树--当前节点选中被删除时
        											//DemoTree.partialRefreshDel($div);
        										
        下拉树函数
        DTree.prototype.selectVal
        (v2.5.5新增)
        String 设置下拉树的初始展示值 -
        DTree.prototype.renderSelectDom
        (v2.5.5新增)
        - 渲染下拉树的Dom结构 -
        字体及图标函数
        DTree.prototype.ensureTheme
        (v2.5.0新增)
        - 确认最终树使用的样式主题及图标 -
        DTree.prototype.useDefaultOrUserDefineFnodeStyle
        (v2.5.0新增)
        String, Object 赋值一级图标 -
        DTree.prototype.useDefaultOrUserDefineSnodeStyle
        (v2.5.0新增)
        String, Object 赋值二级图标 -
        DTree.prototype.useDefaultOrUserDefineCheckboxStyle
        (v2.5.0新增)
        String, Object 赋值复选框图标 -
        DTree.prototype.useDefaultOrUserDefineMenubarStyle
        (v2.5.0新增)
        String, Object 赋值菜单栏图标 -
        DTree.prototype.useDefaultOrUserDefineMenubarExtStyle
        (v2.5.0新增)
        String, Object 赋值扩展菜单栏图标 -
        DTree.prototype.useDefaultOrUserDefineToolbarStyle
        (v2.5.0新增)
        String, Object 赋值工具栏图标 -
        DTree.prototype.useDefaultOrUserDefineToolbarExtStyle
        (v2.5.0新增)
        String, Object 赋值扩展工具栏图标 -
        DTree.prototype.operateIcon
        (v2.5.0新增)
        Dom, Dom 设置图标的展开关闭,以及展开时/关闭时是最后一级图标的处理 -
        DTree.prototype.showLine
        (v2.5.0新增)
        ArrayDom 展开树线 -
        DTree.prototype.showLineLi
        (v2.5.0新增)
        Dom 设置树线 -
        复选框函数
        DTree.prototype.chooseDataInit String/Array 初始化复选框的值
        											DemoTree.chooseDataInit("001,002,003");
        											DemoTree.chooseDataInit(["001","002","003"]);
        											DemoTree.chooseDataInit(123);
        										
        DTree.prototype.checkAllOrNot Dom 复选框点击,子集选中父级也选中 -
        DTree.prototype.checkAllOrNoallOrNot Dom 复选框点击, no-all 子集选中父级半选中,子集全选父级选中 -
        DTree.prototype.checkAllOrPcascOrNot Dom 复选框点击,p-casc:父级选中子集全选,子集无法改变父级选中状态 -
        DTree.prototype.checkOrNot Dom 复选框点击,self:各自选中互不影响 -
        DTree.prototype.checkOnly
        (v2.4.5_finally新增)
        Dom 复选框点击,only:仅存一个 -
        DTree.prototype.changeCheck - 改变复选框当前选中状态
        											//该方法适用于在checkbar的chooseBefore回调中
        											DemoTree.changeCheck(); // 根据定义的级联关系,改变复选框当前选中状态
        										
        DTree.prototype.initNoAllCheck - 复选框半选状态初始化设置
        											//该方法适用于树加载完毕后,回显上级菜单的半选/选中状态
        											DemoTree.initNoAllCheck();
        										
        DTree.prototype.initAllCheck - 复选框选中状态初始化设置
        											//该方法适用于树加载完毕后,回显上级菜单的选中状态
        											 DemoTree.initAllCheck();
        										
        DTree.prototype.checkStatus Dom 设置复选框选中/未选中/半选
        											//该方法适用于在checkbar的chooseBefore回调中,或者你想手动触发复选框选中时
        											DemoTree.checkStatus($i).check(); // 当前复选框选中
        											DemoTree.checkStatus($i).noCheck(); // 当前复选框未选中
        											DemoTree.checkStatus($i).noallCheck(); // 当前复选框半选中
        										
        DTree.prototype.setAndGetCheckbarNodesParam - 设置树的复选框操作值的全部参数,并获取 -
        DTree.prototype.getCheckbarNodesParam Boolean 获取树的复选框操作值的全部参数
        											var param = DemoTree.getCheckbarNodesParam();
        											console.log(param);
        										
        DTree.prototype.getCheckbarJsonArrParam
        (v2.5.6新增)
        - 获取基于返回参数的树的复选框参数数组
        											var param = DemoTree.getCheckbarJsonArrParam();
        											console.log(param);
        										
        DTree.prototype.getCheckbarNodeParam Dom,Dom 获取树的一个复选框的参数 -
        DTree.prototype.changeCheckbarNodes - 判断复选框是否发生变更
        											var flag = DemoTree.changeCheckbarNodes();
        											console.log(flag);
        										
        DTree.prototype.clickNodeCheckbar
        (v2.5.5新增)
        string 点击节点选择复选框
        											DemoTree.clickNodeCheckbar("001");
        										
        DTree.prototype.checkAllNode
        (v2.5.6新增)
        - 复选框全选
        											DemoTree.checkAllNode();
        										
        DTree.prototype.cancelCheckedNode
        (v2.5.6新增)
        - 取消全部复选框选中
        											DemoTree.cancelCheckedNode();
        										
        DTree.prototype.invertCheckedNode
        (v2.5.6新增)
        - 反选复选框
        											DemoTree.invertCheckedNode();
        										
        DTree.prototype.removeCheckedNode
        (v2.5.6新增)
        - 删除选中节点
        											DemoTree.removeCheckedNode();
        										
        工具栏及菜单栏函数
        DTree.prototype.initTreePlus
        (v2.4.5_finally_beta新增)
        - 初始化菜单栏和工具栏的div -
        DTree.prototype.openTreePlus
        (v2.4.5_finally_beta新增)
        - 开启工具栏和菜单栏 -
        DTree.prototype.getMenubarDom - 获取菜单栏 -
        DTree.prototype.getExtMenubarDom
        (v2.4.5_finally_beta新增)
        - 获取扩展菜单栏 -
        DTree.prototype.getMenubarToolDom
        (v2.4.5_finally_beta新增)
        - 获取依附在工具栏的菜单栏 -
        DTree.prototype.getExtMenubarToolDom
        (v2.4.5_finally_beta新增)
        - 获取依附在工具栏的扩展菜单栏 -
        DTree.prototype.menubarListener
        (v2.4.5_finally_beta新增)
        - menubar内置监听 -
        DTree.prototype.searchNode - 模糊查询该值,展开该值节点(内置方法调用的真正查询方法)
        											DemoTree.searchNode(); // 模糊查询该值,展开该值节点
        										
        DTree.prototype.getToolbarDom - 获取工具栏 -
        DTree.prototype.setToolbarDom
        (v2.4.5新增)
        Object 设置工具栏 -
        DTree.prototype.loadToolBar String, String 加载toolBar中的内容 -
        DTree.prototype.toolbarHide
        (v2.5.0新增)
        - 隐藏toolbar -
        DTree.prototype.toolbarMethod
        (v2.5.0新增)
        - toolbar内置调用方法
        											DemoTree.toolbarMethod().pulldown($jquery); // 展开当前节点下的所有节点
        											DemoTree.toolbarMethod().pullup($jquery); // 收缩当前节点下的所有节点
        										
        DTree.prototype.toolbarListener
        (v2.5.0新增)
        String, Dom toolbar内置监听 -
        DTree.prototype.loadToolBarDetail
        (v2.4.5_finally_beta新增)
        - 获取toolbar详细的标签信息 -
        DTree.prototype.dynamicToolbarDom
        (v2.5.0新增)
        Dom 在节点后动态绑定fixed和follow条件的工具栏 -
        DTree.prototype.changeTreeNodeAdd String / Object 新增节点后改变节点内容
        											//该方法适用于在toolbar的addTreeNode回调中,获取后台返回数据改变树的状态,入参一共有四种
        											//DemoTree.changeTreeNodeAdd(param); // 添加成功,返回一个JSON对象
        											//DemoTree.changeTreeNodeAdd(treeNode.nodeId); // 添加成功,返回ID
        											//DemoTree.changeTreeNodeAdd(true/false); // 添加成功/失败
        											//DemoTree.changeTreeNodeAdd("refresh"); // 添加成功,局部刷新树
        										
        DTree.prototype.changeTreeNodeEdit Boolean 编辑节点后改变节点内容
        											//该方法适用于在toolbar的editTreeNode回调中,获取后台返回数据改变树的状态,入参一共有三种
        											//DemoTree.changeTreeNodeEdit(true/false);// 修改成功/失败
        											//DemoTree.changeTreeNodeEdit(result.param); // 修改成功,返回一个JSON对象
        										
        DTree.prototype.changeTreeNodeDel Boolean 删除节点后改变节点内容
        											//该方法适用于在toolbar的delTreeNode回调中,获取后台返回数据改变树的状态,入参一共有两种
        											//DemoTree.changeTreeNodeDel(true/false); // 删除成功/失败
        										
        DTree.prototype.changeTreeNodeDone Object 编辑页打开后显示编辑页内容
        											//该方法适用于在toolbar的editTreeLoad回调中,获取后台返回数据改变树的状态
        											DemoTree.changeTreeNodeDone(param);
        											//param格式说明:为JSON格式,其中key为你配置的toolbarBtn中的name,值则为name需要回显的值。
        										
        iframe函数
        DTree.prototype.loadIframe Dom, Object 加载iframe -
        DTree.prototype.getIframeRequestParam Object 获取传递出去的参数,根据iframe.iframeDefaultRequest、iframe.iframeRequest和node拼出发出请求的参数 -
        数据回调函数
        DTree.prototype.getNodeDom
        (v2.5.0新增)
        String / Dom 根据具体的id获取基于当前id的div以及对应的其他dom元素。
        如果id就是一个$div,则就是这个div,如果不是则进行选取div,如果选不中则为null。
        该方法可以替代getNowNodeUl、getNowNode、getNode、getNowNodeOrNull的功能
        											var $div = DemoTree.getNodeDom("001").div(); //获取data-id是001的div
        											var $div1 = DemoTree.getNodeDom($div).div(); //Dom也可以当做入参传递,一下方法只演示一种。
        											var $cite = DemoTree.getNodeDom("001").cite(); //获取文本存储元素
        											var $fnode = DemoTree.getNodeDom("001").fnode(); //获取一级图标元素
        											var $snode = DemoTree.getNodeDom("001").snode(); //获取二级图标元素
        											var $checkbox = DemoTree.getNodeDom("001").checkbox(); //获取复选框元素集合
        											var $nextUl = DemoTree.getNodeDom("001").nextUl(); //获取相邻的ul元素
        											var $parentLi = DemoTree.getNodeDom("001").parentLi(); //获取父级li元素
        											var $parentDiv = DemoTree.getNodeDom("001").parentDiv(); //获取基于当前$div的上级$div
        											var $nowDiv =  DemoTree.getNodeDom().nowDiv(); //获取当前选中$div,没有则返回null
        											var $nowOrRootDiv = DemoTree.getNodeDom().nowOrRootDiv(); //获取当前选中$div,没有则返回根节点下的第一个$div
        											var $nowOrRootUl = DemoTree.getNodeDom().nowOrRootUl(); //获取当前选中$div的nextUl, 或根节点ul。为了将新节点放入ul下
        										
        DTree.prototype.getNowNodeUl - 获取当前选中节点下一个UL 或根节点。为了将新节点放入ul下
        											var $ul = DemoTree.getNowNodeUl();
        											console.log($ul);
        										
        DTree.prototype.getNowNode - 获取当前选中节点,或根节点
        											var $div = DemoTree.getNowNode();
        											console.log($div);
        										
        DTree.prototype.getNode
        (v2.5.0新增)
        String 获取指定Id的节点
        											var $div = DemoTree.getNode("001");
        											console.log($div);
        										
        DTree.prototype.getNowNodeOrNull
        (v2.5.0新增)
        - 获取当前选中节点,没有选中则为null
        											var $div = DemoTree.getNowNodeOrNull();
        											console.log($div);
        										
        DTree.prototype.setNodeParam Dom 设置当前选中节点的全部参数 -
        DTree.prototype.getNodeParam Dom 获取当前选中节点的全部参数 -
        DTree.prototype.getTempNodeParam Dom 获取一个临时的node参数 -
        DTree.prototype.initNodeParam - 重置参数 -
        DTree.prototype.getRequestParam Object 获取传递出去的参数,根据defaultRequest、request和node拼出发出请求的参数 -
        DTree.prototype.getNowParam - 获取当前选中值
        											var param = DemoTree.getNowParam();
        											console.log(param);
        										
        DTree.prototype.getParam
        (v2.5.0新增)
        String / Dom 获取指定节点选中值
        											//var param = DemoTree.getParam("001");
        											//var param = DemoTree.getParam($div);  //指定的一个Dom对象
        											console.log(param);
        										
        DTree.prototype.getParentParam String / Dom 获取参数的上级节点
        											//var param = DemoTree.getParentParam("001");
        											//var param = DemoTree.getParentParam($div);  //指定的一个Dom对象
        											console.log(param);
        										
        DTree.prototype.getAllParentParam
        (v2.5.0新增)
        String / Dom 获取参数的全部上级节点
        											//var param = DemoTree.getAllParentParam("001");
        											//var param = DemoTree.getAllParentParam($div);  //指定的一个Dom对象
        											console.log(param);
        										
        DTree.prototype.getChildParam String / Dom 获取下级节点的node参数集
        											//var param = DemoTree.getChildParam("001");
        											//var param = DemoTree.getChildParam($div);  //指定的一个Dom对象
        											console.log(param);
        										
        DTree.prototype.callbackData Object 获取回调数据 -
        事件绑定函数
        DTree.prototype.bindBrowserEvent - 绑定浏览器事件 -
        DTree.prototype.unbindBrowserEvent
        (v2.4.5_finally_beta新增)
        - 解绑浏览器事件 -
        文档到此结束,看的不过瘾,或者还是一知半解?请移步案例演示,我将手把手教你如何使用dtree组件。