原文发表在: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文档,可用演讲
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
wrf转mp4播放器1.1.1
内容概要:本文档详细介绍了如何在Simulink中设计一个满足特定规格的音频带ADC(模数转换器)。首先选择了三阶单环多位量化Σ-Δ调制器作为设计方案,因为这种结构能在音频带宽内提供高噪声整形效果,并且多位量化可以降低量化噪声。接着,文档展示了具体的Simulink建模步骤,包括创建模型、添加各个组件如积分器、量化器、DAC反馈以及连接它们。此外,还进行了参数设计与计算,特别是过采样率和信噪比的估算,并引入了动态元件匹配技术来减少DAC的非线性误差。性能验证部分则通过理想和非理想的仿真实验评估了系统的稳定性和各项指标,最终证明所设计的ADC能够达到预期的技术标准。 适用人群:电子工程专业学生、从事数据转换器研究或开发的技术人员。 使用场景及目标:适用于希望深入了解Σ-Δ调制器的工作原理及其在音频带ADC应用中的具体实现方法的人群。目标是掌握如何利用MATLAB/Simulink工具进行复杂电路的设计与仿真。 其他说明:文中提供了详细的Matlab代码片段用于指导读者完成整个设计流程,同时附带了一些辅助函数帮助分析仿真结果。
国网台区终端最新规范
《基于YOLOv8的智慧农业水肥一体化控制系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
GSDML-V2.33-LEUZE-AMS3048i-20170622.xml
微信小程序项目课程设计,包含LW+ppt
微信小程序项目课程设计,包含LW+ppt
终端运行进度条脚本
幼儿园预防肺结核教育培训课件资料
python,python相关资源
《基于YOLOv8的智慧校园电动车充电桩状态监测系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
deepseek 临床之理性软肋.pdf
SM2258XT量产工具(包含16种程序),固态硬盘量产工具使用
RecyclerView.zip
水务大脑让水务运营更智能(23页)
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
大众捷达轿车前轮制动器设计
《基于YOLOv8的智能工厂压缩空气泄漏检测系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计