=ZTree v3.x (JQuery Tree插件) 更新日志=
<font color="red">为了更好的优化及扩展zTree, 因此决定升级为v3.x,并且对之前的v2.x不兼容,会有很多结构上的修改,对此深感无奈与抱歉,请大家谅解。</font>
<font color="red">
具体修改内容可参考:
* [http://www.treejs.cn/v3/api.php zTree v3.x API 文档]
* [http://www.treejs.cn/v3/demo.php#_101 zTree v3.x Demo 演示]
* [http://www.treejs.cn/v3/faq.php#_101 zTree v3.x 常见问题]
</font>
*2019.01.18* v3.5.40
* [修改] fuzzySearch.js Thanks @yigger
*2019.01.17* v3.5.39
* [修改] data.nodeChecked & data.isHidden & data.nodeIsParent 的 返回值规范为 boolean Thanks @xinhochen & @田biubiu & @FelixFly
*2019.01.08* v3.5.38
* [修改] data.nodeChecked & data.isHidden 的 返回值规范为 boolean Thanks @xinhochen
*2018.12.10* v3.5.37
* [修改] fuzzySearch.js & Demo Thanks @SadWood & @JerryWang24
*2018.08.21* v3.5.37
* [修改] 替换 scrollIntoViewIfNeeded 方法 Thanks @jocki84
* [修改] 部分 API 文字错误
*2018.06.26* v3.5.36
* [增加] setting.async.headers & setting.async.xhrFields
*2018.04.24* v3.5.35
* [增加] Demo:模糊搜索(Fuzzy Search) Thanks @bigablecat
*2018.03.30* v3.5.35
* [修改] 关闭拖拽方法内的 eventMouseDown.preventDefault(); 避免影响 zTree 外部的事件 Thanks @heyusysu
*2018.02.12* v3.5.34
* [修改] nodeChecked 方法内的错误 Thanks @勇哥
*2018.01.30* v3.5.33
* [修改] nodeIsParent 方法内的错误 Thanks @netmou
*2018.01.06* v3.5.32
* [修改] setting.async.autoParam / otherParam 支持 function
* [修改] isParent / isHidden 允许自定义属性名称 setting.data.key.isParent / isHidden
*2017.12.28* v3.5.31
* [修改] 初始化节点数据的规则,支持 treeNode { name: "Node2", children: []}, 情况下自动设置为 isParent = true
*2017.11.11* v3.5.30
* [修改] scrollIntoViewIfNeeded 方法对 IE7 的兼容
*2017.06.23* v3.5.29
* [修改] 拖拽操作后 body.css("cursor", "auto"); 修改为 body.css("cursor", "");(感谢 Jim)
*2017.06.19* v3.5.29
* [增加] reAsyncChildNodesPromise(parentNode, reloadType, isSilent) 方法支持 ES6 Promise
* [修改] reAsyncChildNodes 方法增加 callback 参数
*2017.01.20* v3.5.28
* [修改] scrollIntoViewIfNeeded 方法对 IE8 的兼容
*2016.12.27* v3.5.27
* [修改] addNodes 方法设置 index 参数后,导致 treeNode.isLastNode 错误
*2016.11.03* v3.5.26
* [修改] 使用 scrollIntoViewIfNeeded 替代 scrollIntoView,兼容各种浏览器
*2016.09.27* v3.5.25
* [修改] ajax 异步加载支持 contentType = 'application/json'
*2016.06.06* v3.5.24
* [修改] selectNode 方法中 某些情况下,isSilent 参数无效
* [修改] 数据中 id = 'length'时, 导致 transformTozTreeFormat() 方法异常
*2016.04.08* v3.5.23
* [修改] expandCollapseNode 方法被 gulp 压缩后,在 IE8 上会导致溢出
*2016.04.06* v3.5.23
* [修改] 替换 arguments.callee 避免 'use strict' 严格模式下报错
*2016.04.01* v3.5.23
* [修改] selectNode 方法 增加 isSilent 参数,可以禁止 选中节点时,自动滚动到视图
*2016.03.01* v3.5.22
* [修改] metro Demo 的样式错误
* [修改] 增加 <a> 的 padding 后, 导致 setting.edit.drag.inner 无效
*2016.02.17* v3.5.21
* [修改] zTree js 文件名 (为了便于发布到 https://cdnjs.com/)
*2016.01.20* v3.5.20
* [修改] checkAllNodes() 方法不处理 (chkDisabled = true) 的父节点的子节点的 bug
*2015.12.04* v3.5.19.3
* [修改] 为避免定位节点时抢焦点, 使用 scrollIntoView 方法替换之前的 focus 方法(对于IE6等旧浏览器仍然使用 focus方法)
*2015.11.15* v3.5.19.2
* [增加] 给节点名称的 span 标签增加 class,便于用户设置 css
*2015.10.26* v3.5.19.1
* [修改] addNodes 新方法 导致 拖拽节点时报错
* [增加] treeNode.getIndex 方法,可以快速获取 节点在 子节点中的位置
* [增加] treeNode.getPath 方法,可以快速获取 节点的所有父节点
*2015.10.22* v3.5.19
* [修改] addNodes 方法支持直接添加新节点到任意位置 addNodes(parentNode, index, newNodes, isSilent)
* [修改] selectstart 事件未解绑导致的内存泄漏
*2015.08.26* v3.5.18
* [修改] onSelected/onUnSelected 回调参数,由 (event, treeId, node) 修改为 (treeId, node);另外 删除 已选择的节点时,也会触发 onUnSelected 回调
* [增加] Allow nodes to specify their own icon using an 'icon' property of the 'setting.data.key'
* [增加] metro 风格 demo
* [增加] awesome 风格 demo
* [增加] 回调 onSelected / onUnSelected
*2015.02.15* v3.5.17
* [修改] excheck 扩展中 removeClass 与 jQueryUI 1.9 冲突的问题,目前放弃 removeClass 方法
* [修改] 优化 exhide 扩展包初始化效率,避免数据多时 ie8 假死的 bug(感谢:https://github.com/sarxos)
* [修改] 若干 Demo & API 的小错误
* [修改] 异步加载 低版本 IE 缓存严重的问题
* [修改] 在 onRename 回调中使用 updateNode 方法无效的问题
*2014.03.09* v3.5.16
* [增加] onDragMove 回调,便于控制 zTree 节点与其他 DOM 的拖拽操作。(感谢 yumi301)
* [增加] 针对 Mac 系统 Cmd 键的支持, Cmd 键 + 左键 也可以多选节点
* [修改] 使用 destory 方法销毁树以后,依然可以从 getZTreeObj 方法中获取到 zTree 对象的 bug。
* [修改] onCheck 回调的 event,恢复为 zTree 自身的 event 事件,同时利用 srcEvent 传递原始 event 对象。(感谢 yumi301)
* [修改] 拖拽多个节点时,超出 maxShowNodeNum 设置个数的节点会失去 被选择状态的 bug
* [修改] excheck & exedit 扩展包的 zTree 方法中 setting 数据错误导致 checkNode、updateNode 等方法操作 radio 失效的 bug
* [修改] 不加载 exedit 扩展包时,使用 removeNode 方法无法触发 beforeRemove 和 onRemove 回调的 bug
*2013.10.19* v3.5.15
* [增加] setting.view.txtSelectedEnable 属性,满足部分项目中客户对于可以选择节点文本信息的强烈欲望。
* [修改] exhide 扩展包导致操作子节点后 isLastNode 属性异常 的bug
* [修改] 使用 cancelEditName 方法时,beforeRename & onRename 的 isCancel 始终为 false 的bug
* [修改] 编辑状态, beforeRename 回调 return false 时,提示信息导致 input 失去焦点后, 当树再次得到焦点时,让 input 自动获取焦点
* [修改] 判断拖拽到节点的 <a> 标签中自定义的无 id 组件判断错误的bug
* [修改] async_edit.html demo 中 添加按钮 显示的 bug
* [修改] 当没有开启异步加载模式下,对于没有子节点的父节点,即使设置 open=true 在初始化时也不会设置为展开状态的bug (对于异步加载模式下依然会强行设置为折叠状态)
*2013.06.28* v3.5.14
* [修改] 拖拽节点时 iframe 遮罩异常的bug
* [修改] 清空子节点后重新添加子节点无法显示的bug
*2013.06.02* v3.5.13
* [增加] beforeRename & onRename 增加 isCancel 参数,可以监控用户 ESC 取消编辑的事件
* [修改] 初始化时 radioType="all", 父节点未展开 且 子节点有被勾选,点击其他 radio 时,不会取消勾选该子节点的bug
* [修改] 多棵树拖拽时,拖拽无效后会导致目标书已选择的节点清空的 bug。
* [修改] 多棵树拖拽时,会触发 addHoverDom 的bug。
* [修改] 多棵树拖拽时,由于 beforeDrog 或 prev / inner / next 返回 false 后未触发原始节点的 addHoverDom 的bug
* [修改] 异步加载时,对于未加载子节点的父节点使用 expandNode 方法时, sonSign 设置为 true后,导致异步加载的节点无法正常显示的bug
* [修改] 一次