jquery easyui tree实战

jquery easyui tree插件着实非常有用,一般来说,在项目中可以用来做树形菜单(后台使用的菜单一般是树形菜单,如果你的菜单项非常多,那么树形菜单是明智之选);此外,在展示一些树形关系时,tree也是很有用,比如说文件与文件夹之间的关系,组织机构关系。

控制tree的整体外观

tree中有两个属性可以对tree的整体外观进行控制,分别是animate和lines,animate是在展开和收缩父节点时,添加动画;而lines在父子节点之间加上虚线,我个人认为,加上虚线的效果要比不加虚线的效果好看,而默认的是不加上虚线的。

tree的节点

一个树由若干节点构成,每一个节点是一个js对象,它有着以下属性:
id,用来识别唯一节点的标识,在程序中,这个id往往会跟数据库的主键发生关联。
text,树形节点的文字,在图标的右边。
iconCls,树形节点的图标,在文字的左边,不指定就使用默认的图标,每一个节点都可定制化图标,确实很好用。
children,树形节点的孩子,这是一个数组,如果没有你可以赋值一个空数组[]。

定制化tree节点的显示效果

如果你认为tree节点的显示只能是图标加上文字,easyui tree能做的不仅仅是这样,它提供功能强大的fomatter属性来让你定制化节点显示效果。很多情况下,在显示机构的时候,但是只允许对一个机构进行单选,如果不加以定制,tree是做不到的,要做到单选,就要使用radio,此时fomatter属性值是一个function,这个function带有一个node参数,返回值一般是一个字符串,以下代码可以在文字的右边加上一个radio按钮
$(".easyui-tree").tree({
  formatter: function (node)
  {
    return node.text + '<input type="radio" name="radioGroup"/>';
  }
});
此外,通过参数node,你可以实现对指定节点的过滤,也就是得到你想要的特定节点,然后对这个节点进行格式化,也是可以的。

让tree显示出多显框checkbox

在允许节点多选时,checkbox很有用,只需要将checkbox属性设置为true就可以了。此时每一个节点都会带上checkbox,如果对父节点选中,那么所有子节点都会选中,这非常适合于文件夹的选择。

静态tree

静态数据的tree,将静态数据作为tree的数据,一般在tree的数据变动很少的情况下使用,比如说菜单。静态数据的tree的使用比较少。

动态tree

当指定tree的url属性时,刷新页面就会去请求远程的数据。当然,这是使用ajax实现的,所以请求方式分为get和post。默认是使用post(如果包含中文的话,必须要使用post),在post方式下,请求参数通过queryParams来发送,这是一个对象。如{username: "张三"}。

tree节点的对应事件

当tree作为菜单使用时,我们肯定需要在点击菜单项来触发相应的动作,这时候可以使用onSelect事件和onClick事件,我采用的是onSelect事件,这两个事件对应的function都是带有一个node作为参数的。通过node.text或者node.id来筛选出特定的节点,然后加上相应的操作。

tree节点相关的方法

与节点相关的方法,那就是知道到底选中了什么节点。通常情况下分为单选和多选,单选情况下,使用getSelected可以得到选中的节点,多选时,使用getChecked可以得到处于某状态的多选的一群节点,这个方法带有一个state参数,选值为"checked"或"unchecked"。此外,还可以通过find方法来查找指定id的node。

tree节点对应的DOM的对象

通过node.target可以得到节点对应的DOM对象。

tree插入节点和删除节点

tree插入节点可以分为追加和按位置插入,追加的话,使用append方法,这个方法需要提供参数,参数也是一个对象{parent: 对象, children: []},必须要参数中指定父节点和孩子节点。
指定位置前插入,使用insert,这个方法需要提供参数,参数是一个对象{before: 兄弟, children:[]},必须要指定兄弟节点和孩子节点。
删除节点使用方法remove,参数是节点对应的DOM对象。

在某个操作后重新读取远程数据

使用loadData方法,参数是data,也是一个对象。可以开一个ajax先请求数据,请求完毕后把得到的数据传入到loadData中作为参数。
此外,还可以重现调用tree({url:'myurl'})来重新读取远程数据。

总结

我做的实例,一个是组织结构的增删改,另外一个是静态的菜单,用到的tree相关操作大致就是上述这些。tree这个插件兼容性还算是比较好的,在IE和firefox下都能正常显示,脚本也能正常运行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值