treeTable v 1.4.2

treeTable v 1.4.2treeTablev1.4.2简介treeTable是跨浏览器、性能很高的jquery的树表组件,它使用非常简单,只需要引用jquery库和一个js文件,接口也很简单。优点兼容主流浏览器:支持IE6和IE6+,Firefox,chrome,Opera,Safari接口简洁:在普通表格的基础上增加父子关系的自定义标签就可以组件性能高:内部实现了只绑

大家好,又见面了,我是你们的朋友全栈君。

treeTable v 1.4.2

简介

treeTable是跨浏览器、性能很高的jquery的树表组件,它使用非常简单,只需要引用jquery库和一个js文件,接口也很简单。

优点

  1. 兼容主流浏览器: 支持IE6和IE6+, Firefox, chrome, Opera, Safari
  2. 接口简洁: 在普通表格的基础上增加父子关系的自定义标签就可以
  3. 组件性能高: 内部实现了只绑定了table的事件、使用了css sprite合并图片等
  4. 提供两种风格: 通过参数来设置风格
效果图
treeTable v 1.4.2
接口

配置参数

  • theme: string {主题,有两个选项:default、vsStyle. 默认:default}
  • expandLevel: int {树表的展开层次. 默认:1}
  • column: int {可控制列的序号. 默认:0,即第一列}
  • onSelect: function {拥有controller自定义属性的元素的点击事件,return false则中止展开. 默认值:
    function($treeTable, id) {       //$treeTable 当前树表的jquery对象.       //id 当前行的id            //返回false,则直接退出,不会激发后面的beforeExpand和子节点的展开       return true; }
  • beforeExpand: {展开子节点前触发的事件, 默认值:
    function($treeTable, id) {       //$treeTable 当前树表的jquery对象.       //id 当前行的id }

属性说明

  • id: string 行的id
  • pId: string 父行的id
  • controller: bool 指定某一个元素是否可以控制行的展开
  • hasChild: bool 指定某一个tr元素是否有孩子(动态加载需用到)
  • isFirstOne: bool 指定某一个tr元素是否是第一个孩子(自动生成属性,只读)
  • isLastOne: bool 指定某一个tr元素是否是最后一个孩子(自动生成属性,只读)
  • prevId: string 前一个兄弟节点的id(自动生成属性,只读)
  • depth: string 当前行的深度(自动生成属性,只读)
使用方式

$(“#元素id”).treeTable({}) 如:

引用的文件

<script src="/script/jquery.js" type="text/javascript"> </script> 
<script src="/script/treeTable/jquery.treeTable.js" type="text/javascript"> </script>

js代码
复制代码
    <script type=”text/javascript”>

        $(
function(){

            
var option = {

                theme:’vsStyle’,

                expandLevel : 2,

                beforeExpand : 
function($treeTable, id) {

                    
//
判断id是否已经有了孩子节点,如果有了就不再加载,这样就可以起到缓存的作用

                    
if ($(‘.’ + id, $treeTable).length) { 
return; }

                    
//
这里的html可以是ajax请求

                    
var html = ‘<tr id=”8″ pId=”6″><td>5.1</td><td>可以是ajax请求来的内容</td></tr>’

                             + ‘<tr id=”9″ pId=”6″><td>5.2</td><td>动态的内容</td></tr>’;

                    $treeTable.addChilds(html);

                },

                onSelect : 
function($treeTable, id) {

                    window.console && console.log(‘onSelect:’ + id);

                    

                }

            };

            $(‘#treeTable1’).treeTable(option);

        });

    </script> 

复制代码

html结构

复制代码
            
<
table 
id
=”treeTable1″
 style
=”width: 100%”
>

                
<
tr
>

                    
<
td 
style
=”width: 200px;”
>

                        标题
</
td
>

                    
<
td
>

                        内容
</
td
>

                
</
tr
>

                
<
tr 
id
=”1″
>

                    
<
td
>

                        
<
span 
controller
=”true”
>1
</
span
></
td
>

                    
<
td
>

                        内容
</
td
>

                
</
tr
>

                
<
tr 
id
=”2″
 pid
=”1″
>

                    
<
td
>

                        
<
span 
controller
=”true”
>2
</
span
></
td
>

                    
<
td
>

                        内容
</
td
>

                
</
tr
>

                
<
tr 
id
=”3″
 pid
=”2″
>

                    
<
td
>

                        3
</
td
>

                    
<
td
>

                        内容
</
td
>

                
</
tr
>

                
<
tr 
id
=”4″
 pid
=”2″
>

                    
<
td
>

                        4
</
td
>

                    
<
td
>

                        内容
</
td
>

                
</
tr
>

                
<
tr 
id
=”5″
 pid
=”4″
>

                    
<
td
>

                        4.1
</
td
>

                    
<
td
>

                        内容
</
td
>

                
</
tr
>

                
<
tr 
id
=”6″
 pid
=”1″
 haschild
=”true”
>

                    
<
td
>

                        5
</
td
>

                    
<
td
>

                        注意这个节点是动态加载的
</
td
>

                
</
tr
>

                
<
tr 
id
=”7″
>

                    
<
td
>

                        8
</
td
>

                    
<
td
>

                        内容
</
td
>

                
</
tr
>

            
</
table
>
复制代码

关于

作者: benzhan(詹潮江)

版本变更

1.0版本:创建基本功能。(2011-05-04)

1.1版本:(2011-05-08)

这个版本提高了性能,做了以下改进:   

* 1、使用了Css Sprite Tools 合并了分散的图标 
* 2、使用了.id的方式来代替原来[pId=id],这样选择孩子效率更高 
* 3、把css剥离出来,增加动态添加css,每次家在前判断是否添加过   
关于第二点,非常感谢onli同学的提醒。但我并没有直接修改我的接口,直接除去pId,而是在第一次遍历时将pId作为class名添加到节点中。这样有两个好处: (1)接口可读性会比较好,pId比class更容易理解。 (2)第二点,如果直接使用class,那节点本来就有样式,这样获取到的className还要去分解空格得到pId,挺麻烦的。

1.3版本:(2011-05-09)

这个版本扩展了事件,做了以下改进:   
* 1、增加onSelect事件,onSelect: function($treeTable, id){} 
* 2、增加beforeExpand事件,beforeExpand : function($treeTable, id){}   动态加载节点就靠beforeExpand 事件了。

1.4.2版本:(2011-09-03)

这个版本修复了bug,做了以下改进: 
* 1、修复了多个tableTree不在同个页面的bug,并且可以让不同的tableTree使用不同的主题。
* 2、增加了controller的自定义标签来控制可点击的区域。

点击这里下载    引自:
星火幽蓝

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132264.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月11日 上午6:46
下一篇 2022年6月11日 上午6:46


相关推荐

  • ETCD 简介 + 使用

    ETCD 简介 + 使用随着 CoreOS 和 Kubernetes 等项目在开源社区日益火热 它们项目中都用到的 etcd 组件作为一个高可用强一致性的服务发现存储仓库 渐渐为开发人员所关注 在云计算时代 如何让服务快速透明地接入到计算集群中 如何让共享配置信息快速被集群中的所有机器发现 更为重要的是 如何构建这样一套高可用 安全 易于部署以及响应快速的服务集群 已经成为了迫切需要解决的问题 etcd 为解决这类问题带来了福音 本文

    2026年3月20日
    2
  • OpenClaw 省錢攻略:3 個關鍵設置讓每月賬單從 $600 降到 $60

    OpenClaw 省錢攻略:3 個關鍵設置讓每月賬單從 $600 降到 $60

    2026年3月16日
    4
  • 使用Diffie-Hellman算法(非对称加密算法)得到对称加密需要的秘钥

    使用Diffie-Hellman算法(非对称加密算法)得到对称加密需要的秘钥目录 0 摘要 1 概述 2 Diffie Hellman 算法原理 2 1Diffie Hellman 算法原理 2 2Diffie Hellman 算法的优缺点转载自原文在原文基础上优化了一下 加上注释 更好读懂 0 摘要非对称加密算法又称公开密钥加密算法 非对称加密是相对于对称加密而言的 对称加密指的是通信双方使用的密钥是一致的 而非对称加密就是算法使用的密钥不一致 非对称加密的好处是当通信双方没有事先协商密钥的情况下也能进行安全通信 而在互联网普及的今天 很多通信双方往往在事先是无法协商好密钥的

    2026年3月16日
    2
  • 慧荣SM2246主控固态硬盘开卡一直pretest解决方法

    慧荣SM2246主控固态硬盘开卡一直pretest解决方法DIY做了一根慧荣SM2246主控的固态硬盘,贴了两个闪存颗粒是TH58TFG9DDLBA8C,但开卡的时候,从量产部落下载的量产软件只能短接进rommode才能识别,而且开卡一直卡在pretest进度就不走了,这种问题是怎么回事。解决方法是:SM2246的板子,需要把闪存贴到主控测,而上面的问题是因为贴到了反面,所以就算跳线了也不能开卡成功。那么我们只需要把闪存贴到主控测,重新设置跳线,再量产就能开卡成功了,也不会卡到pretest了。…

    2022年6月12日
    114
  • Linux 系统 node.js 安装

    Linux 系统 node.js 安装1 查看系统信息命令 uname a2 选取合适的版本 node js 版本地址 https nodejs org dist 根据自己系统选择对应的包 图中标记的是 liunx64 位操作系统对应的包 3 下载对应的安装文件命令 wgethttps nodejs org dist v17 6 0 node v17 6 0 linux x64 tar xz4 对所下载的文件进行解压缩和转移命令 tar xvfnode v17 6 0 linux x64

    2026年3月26日
    2
  • weka怎么安装_we是什么安装方式

    weka怎么安装_we是什么安装方式1什么是看板管理首先我们先两张现实中的看板系统,能够有助于我们理解看板管理系统。大家常见的应该是实体看板,适合布置在团队所有成员都在一个办公室工作的环境。它的优点很明显,方便工作成员展示和查看自

    2022年8月4日
    13

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号