`
birchlee
  • 浏览: 4633 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

动手改造柴哥的Html2Tree

阅读更多

原文发表在:http://www.birchlee.com/post/2011/10/25/31.aspx

最近在使用一些js,jQuery树形控件,大多数都是基于json格式,都是按照要求的数据格式才能出固定的树形。扩展性差,还要研究他们的API。

树形控件有三点我觉得很重要:

1. 直觉是美观(简洁大方很重要)

2. 方便使用

3.易于扩展

项目中要求有复选框,这个很多树形控件实现了,节点后边是否能追加按钮,如增删查等等。大部分不行。

看到柴哥的Html2Tree:http://www.cnblogs.com/chaige/archive/2011/10/20/Html2Tree.html

设计思路如下:

            Html2Tree采用的是以下方式构建树形:
            全局根元素:<dl></dl> 【dl(definition list):定义了树列表】
            节点元素:<dt></dt> 【dt(definition title):定义了节点标题】
            子节点:<dd></dd>【dd(definition description):定义了节点的内容描述】
            一个简单的树形:
            <dl>
                <dt>根元素</dt>
                <dd>
                    <dl>
                        <dt>子元素一</dt>
                        <dt>子元素二</dt>
                        <dl>子元素三</dt>
                    </dl>
                </dd>
            </dl>
            样式如下:
            .Html2Tree h3{树标题}
            .Html2Tree dl, .Html2Tree dd, .Html2Tree dt,.Html2Tree dt a{所有超链接样式}
            .Html2Tree dd{子节点}
            .Html2Tree dl{节点列表样式}
            .Html2Tree dl.last{}
            .Html2Tree dt{节点样式}
            .Html2Tree dt.open {节点展开样式}
            .Html2Tree dt span{节点文本样式}
            .Html2Tree dt span,.Html2Tree dt a{节点超链接样式}
            .Html2Tree dl dt.focus a{节点获得焦点样式}
            .Html2Tree dt.open span{展开节点文本样式}
            .Html2Tree dt.file span{background:url(Html2Tree_black.gif) no-repeat 1px -98px}
            .Html2Tree dt a:hover{text-decoration:underline;color:#DF2520}
            .Html2Tree dt.file, .Html2Tree dt.error{background:url(Html2Tree_black.gif) no-repeat 3px -250px}
            .Html2Tree_a3 dl {background:none}
            .Html2Tree_a3 dl dt,
            .Html2Tree_a3 dl dt.open ,
            .Html2Tree_a3 dl dt span,
            .Html2Tree_a3 dl dt.open span,
            .Html2Tree_a3 dl dt.file span{background-image:url(Html2Tree_a3.gif)}
            .Html2Tree_a3 dl dt.file{background: none}

           在mvc3项目中按照上述结构绑定数据列表,然后配合下面的Js,出现相应的效果。

            由于要添加额外的一些事件,索性把javascript改成了Jquery版本的,效果如下:

     <script type="text/javascript">
        $(document).ready(function () {
            var tree = $("#tree");
            var theme = "black";

            var dllist = tree.find("dl");
            for (var i = 0; i < dllist.length; i++) {
                var dl = $(dllist[i]);
                var dt = dl.children("dt:first");
                var dd = dl.children("dd");
                //当前节点样式
                if (dd.length == 0) {
                    dt.attr('class', "file");
                }
                else {
                    (function () {
                        //节点的点击事件
                        dt.click(function () {
                            var cdt = $(this);
                            var cdd = cdt.next();
                            //节点样式
                            var open = cdd.css("display") == undefined || cdd.css("display") == "none";
                            var dt_class = open ? 'open' : '';
                            cdt.attr("class", dt_class);
                            //子节点列表样式
                            var dd_display = open ? 'block' : 'none';
                            var dd_class = open ? 'open' : '';
                            cdd.css("display", dd_display);
                            cdd.attr("class", dd_class);
                        });
                        //复选框的事件
                        dt.children("input:first").click(function (e) {
                            alert("点击复选框");
                            e.stopPropagation(); //阻止执行节点事件
                        });
                    })(jQuery);
                }
            }
        });
    </script>

 

分享到:
评论

相关推荐

    计算机算法.doc

    计算机算法入门,概述,快速走进编程世界.Doc文档,可用演讲

    Java毕业设计-基于Springboot+Vue旅游网站设计-源码+数据库+使用文档+演示视频(高分项目).zip

    Java毕业设计-基于Springboot+Vue旅游网站设计-源码+数据库+使用文档+演示视频(高分项目).zip本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 Java毕业设计-基于Springboot+Vue旅游网站设计-源码+数据库+使用文档+演示视频(高分项目).zipJava毕业设计-基于Springboot+Vue旅游网站设计-源码+数据库+使用文档+演示视频(高分项目).zipJava毕业设计-基于Springboot+Vue旅游网站设计-源码+数据库+使用文档+演示视频(高分项目).zipJava毕业设计-基于Springboot+Vue旅游网站设计-源码+数据库+使用文档+演示视频(高分项目).zipJava毕业设计-基于Springboot+Vue旅游网站设计-源码+数据库+使用文档+演示视频(高分项目).zipJava毕业设计-基于Springboot+Vue旅游网站设计-源码+数据库+使用文档+演示视频(高分项目).zip

    Music-app-master.zip

    Music-app-master

    基于springboot的权限管理系统.zip

    基于springboot的java毕业&课程设计

    外东洪路中段.m4a

    外东洪路中段.m4a

    基于matlab+Simulink模拟的微电网系统包括包括电源、电力电子设备等+源码+开发文档(毕业设计&课程设计&项目开发)

    基于matlab+Simulink模拟的微电网系统包括包括电源、电力电子设备等+源码+开发文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 项目简介: 这是一个完整的微电网模型,包括电源、电力电子设备、使用MatLab和Simulink的负载和电源模型。该模型基于费萨尔·穆罕默德的硕士论文《微网格建模与仿真》。 什么是微电网 模拟的微电网使用一组电源和负载在与任何集中式电网(宏电网)断开连接的情况下工作,并自主运行,为其局部区域提供电力。该仿真对微电网在稳态下进行建模,以分析其对输入变化的瞬态响应。 此模拟的目的 对系统进行全年模拟,测量负载、产量、电压和频率。 给出简化规划和资源评估阶段的方法。

    MySQL8.4.0 LTS(mysql-server-8.4.0-1debian12-amd64.deb-bundle)

    MySQL8.4.0 LTS(mysql-server_8.4.0-1debian12_amd64.deb-bundle.tar)适用于Debian 12 Linux (x86, 64-bit)

    改进混沌游戏优化(ICgo)matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    基于SpringBoot,SpringCloud的微服务大型在线学习平台实现.zip

    基于springboot的java毕业&课程设计

    圣经投屏软件(5种语言版本)

    圣经投屏软件(5种语言版本)

    基于SpringBoot,Spring Security实现的前后端分离权限管理简易系统.zip

    基于springboot的java毕业&课程设计

    jSP在线教学质量评价系统的设计与实现(源代码)

    在线教学质量评价系统可以方便和全面地收集教师教学工作的数据,提供师生网上评教的评分结果,快速集中收集各方面的评教信息,使教务管理部门能够及时了解教学动态和师资情况,为教务老师提供相关决策支持,为职称评聘提供教学工作质量的科学依据,同时减轻了教务老师的工作量。

    测障测角小车程序+仿真电路DSN文件+设计报告doc.zip

    包含作品的设计论文doc文档+测障测角小车程序+仿真电路DSN文件,可直接修改,适合于电赛备赛、课程设计、毕设参考等。 设计制作了一款具有智能判断功能的小车,功能强大。小车具有以下几个功能:自动避障功能;寻迹功能(按路面的黑色轨道行驶);趋光功能(寻找前方的点光源并行驶到位);检测路面所放置的铁片的个数的功能;计算并显示所走的路程和行走的时间,并可发声发光。作品可以作为大学生学习嵌入式控制的强有力的应用实例。     作品以两电动机为主驱动,通过各类传感器件来采集各类信息,送入主控单元AT89S52单片机,处理数据后完成相应动作,以达到自身控制。电机驱动电路采用高电压,高电流,四通道驱动集成芯片L293D。其中避障采用红外线收发来完成;铁片检测部分采用电感式接近开关LJ18A3-8-Z/BX检测;黑带检测采用红外线接收二极管完成;趋光部分通过3路光敏二极管对光源信号的采集,再经过ADC0809转化为数字信号送单片机处理判别方向。由控制单元处理数据后完成相应动作,实现了无人控制即可完成一系列动作,相当于简易机器人。 关键字:智能控制   蔽障  红外线收发  寻迹行驶  趋光行驶

    基于Python卷积神经网络人脸识别驾驶员疲劳检测与预警系统设计

    1412基于Python卷积神经网络人脸识别驾驶员疲劳检测与预警系统设计毕业源码案例设计 卷积神经网络(Convolutional Neural Networks, CNNs 或 ConvNets)是一类深度神经网络,特别擅长处理图像相关的机器学习和深度学习任务。它们的名称来源于网络中使用了一种叫做卷积的数学运算。以下是卷积神经网络的一些关键组件和特性: 卷积层(Convolutional Layer): 卷积层是CNN的核心组件。它们通过一组可学习的滤波器(或称为卷积核、卷积器)在输入图像(或上一层的输出特征图)上滑动来工作。 滤波器和图像之间的卷积操作生成输出特征图,该特征图反映了滤波器所捕捉的局部图像特性(如边缘、角点等)。 通过使用多个滤波器,卷积层可以提取输入图像中的多种特征。 激活函数(Activation Function): 在卷积操作之后,通常会应用一个激活函数(如ReLU、Sigmoid或tanh)来增加网络的非线性。 池化层(Pooling Layer): 池化层通常位于卷积层之后,用于降低特征图的维度(空间尺寸),减少计算量和参数数量,同时保持特征的空间层次结构。 常见的池化操作包括最大池化(Max Pooling)和平均池化(Average Pooling)。 全连接层(Fully Connected Layer): 在CNN的末端,通常会有几层全连接层(也称为密集层或线性层)。这些层中的每个神经元都与前一层的所有神经元连接。 全连接层通常用于对提取的特征进行分类或回归。 训练过程: CNN的训练过程与其他深度学习模型类似,通过反向传播算法和梯度下降(或其变种)来优化网络参数(如滤波器权重和偏置)。 训练数据通常被分为多个批次(mini-batches),并在每个批次上迭代更新网络参数。 应用: CNN在计算机视觉领域有着广泛的应用,包括图像分类、目标检测、图像分割、人脸识别等。 它们也已被扩展到处理其他类型的数据,如文本(通过卷积一维序列)和音频(通过卷积时间序列)。 随着深度学习技术的发展,卷积神经网络的结构和设计也在不断演变,出现了许多新的变体和改进,如残差网络(ResNet)、深度卷积生成对抗网络(DCGAN)等。

    基于Vue + SpringBoot实现的前后端分离的仿小米商城项目.zip

    基于springboot的java毕业&课程设计

    QKD 协议密钥率的数值评估matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    基于springboot校园社团管理.zip

    基于springboot的java毕业&课程设计

    基于卷积神经网络的城市感知评估.zip

    卷积神经网络(Convolutional Neural Networks, CNNs 或 ConvNets)是一类深度神经网络,特别擅长处理图像相关的机器学习和深度学习任务。它们的名称来源于网络中使用了一种叫做卷积的数学运算。以下是卷积神经网络的一些关键组件和特性: 卷积层(Convolutional Layer): 卷积层是CNN的核心组件。它们通过一组可学习的滤波器(或称为卷积核、卷积器)在输入图像(或上一层的输出特征图)上滑动来工作。 滤波器和图像之间的卷积操作生成输出特征图,该特征图反映了滤波器所捕捉的局部图像特性(如边缘、角点等)。 通过使用多个滤波器,卷积层可以提取输入图像中的多种特征。 激活函数(Activation Function): 在卷积操作之后,通常会应用一个激活函数(如ReLU、Sigmoid或tanh)来增加网络的非线性。 池化层(Pooling Layer): 池化层通常位于卷积层之后,用于降低特征图的维度(空间尺寸),减少计算量和参数数量,同时保持特征的空间层次结构。 常见的池化操作包括最大池化(Max Pooling)和平均池化(Average Po

    课设毕设基于SpringBoot+Vue的医院急诊系统 LW+PPT+源码可运行.zip

    课设毕设基于SpringBoot+Vue的医院急诊系统 LW+PPT+源码可运行.zip

    无人驾驶实战-无人驾驶高精地图

    无人驾驶高精地图,学习无人驾驶高精地图

Global site tag (gtag.js) - Google Analytics