最近整理了一下树,使用jquery插件的方式重写。感觉比以前仅仅基于jquery写看的舒服多了。和以前一样还是借用treeview 的样式。
目前实现的功能和准备移植能的功能:
- 树的按层初始化(通过expanded属性可以控制节点的默认展开)
- 根节点的可控显示(通过初始化参数 isShowRoot控制)
- 支持单独为每一个节点设置展开、关闭和图标文件(属性fileIcon、folderIcon、openFolderIcon)
- 支持复选框(youiChecked属性控制)
- 树的点击动作(通过youiAction属性关联注册动作,事件 默认为click ,通过actionHandle属性控制,可以为dblclick)
- 动态读取(src属性,未完成,还在考虑那种方式比较好,只实现了简单的id和text的读取。)
- 拖放(属性draggable控制 依赖jquery 的ui组件 draggable,简单的实现,未完善)
- 树的搜索根据路径查找节点(支持未读取数据方式的查找展开,以前实现的速度比较慢,改动比较大,还在想用什么方法比较好)
action注册:
html 代码
- <li youiAction="showStatusBar" youiChecked="true" id="2703000000004"><a><span>2703000000004失业率(月度数据)span>a>li>
js 代码
- jQuery.actionFactory.register("showStatusBar",function(checked){
- alert(this.options.text);
- if(checked=="true"){
- alert("显示状态栏");
- }else{
- alert("隐藏状态栏");
- }
- });
2703000000004失业率(月度数据)
增加功能:
-
动态读取(xml数据集格式)
-
xml数据附加其他属性到树节点
-
节点定位openPath
js 代码
- $("#demoTree").load("template.html",function(){
- var templateTree = $(this).youiTree({
- treeMapObject:{
- mapId :'fileId',
- mapText :'fileName',
- mapPid :'parentFileId'
- },
- attributes:'filePath'
- });
- templateTree.openPath("t1/t11/t21");
- $(this).show();
- });