论坛首页 Web前端技术论坛

带选择框的JS树控件

浏览 6945 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-10-12   最后修改:2009-10-15
前阵子自己写了个带选择框的tree控件,虽然还有一些bug没有修改(动态添加节点),但是感觉加载速度还可以。

子节点检索的方法参考了MzTree,测试了一下发现用正则去查找子节点的确比循环快了不少。

节点有三种状态,选中,未选中,未完全选中。


虽然引了一个jquery.js 但其实jquery只是用来在离开页面的时候把tree的变量delete一下(如果不delete一下 IE内存可能会越用越大)


使用方法:
  var otree = new OTree({
   panel  : document.body,   //Tree所在容器
   data  : chinaAreas         //tree所需数据 JSON格式 数据见china.js
  });
  otree.paint();  //绘制树



节点数大于1000的情况,如果开始就直接选中根节点,会卡大概5-10秒,因为节点太多了,全部选中需要初始化一次( 这个Tree有3000多个节点 ) 目前没想到好的解决方法。(全选的话无论如何也需要初始化一次吧)









PS:那个第一次checked全选的时候会有延迟的问题想到解决方法了。
http://www.iteye.com/topic/487771
  • 大小: 22.1 KB
   发表时间:2009-10-12  
很不错的控件,谢谢分享
0 请登录后投票
   发表时间:2009-10-12  
不错!可以改写成一个jQuery插件啊!
0 请登录后投票
   发表时间:2009-10-14  
不过 是不是所有浏览器都能用呢 不过貌似不错
0 请登录后投票
   发表时间:2009-10-14  
能支持子节点动态加载吗,就是初始化的时候子节点都没有,当点击的时候会加载。
0 请登录后投票
   发表时间:2009-10-14  
我前一阵子写了一个,也有点bug
0 请登录后投票
   发表时间:2009-10-14  
asialee 写道
能支持子节点动态加载吗,就是初始化的时候子节点都没有,当点击的时候会加载。


子节点动态加载目前没实现,但是有个appendNode方法可以自己加节点。




其实我现在研究怎么做才能让第一次checked全选的时候不卡。
(根节点checked打对勾)

目前想到的方法是不传递数组 直接传递一个树结构json,那么就不用解析了。而且以后动态加载也方便。
0 请登录后投票
   发表时间:2009-10-14  
全部加载的方式不好,耗资源啊,还是分级展开的好
0 请登录后投票
   发表时间:2009-10-15  
ydsakyclguozi 写道
全部加载的方式不好,耗资源啊,还是分级展开的好


其实是因为使用分级展开的方式,不知道Checkbox怎么处理。


另外,那个第一次checked全选的时候会有延迟的问题想到解决方法了。

http://www.iteye.com/topic/487771
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics