背景:做一个多级图片分类管理,当然要用到TreeView,在asp.net中已经提供了此服务器控件,参照效果,自定义一个简单可控性高的就当做练手吧!

效果:如图,小图标 折叠 展开

   ico-treeview-1.png   ico-treeview-2.png

HTML:
    <div class="container mt30">
        <ul class="tree">
            <li><i class="ico-tv tv1 tv2"></i><a href="javascript:void(0)" class="op-tv o">销售部</a>
                
                <ul class="subtree">
                    <li><i class="ico-tv tv1"></i><a href="javascript:void(0)" class="op-tv">标志图</a>                        
                        <ul class="subtree hide">
                            <li><i class="ico-tv tv1"></i><a href="javascript:void(0)" class="op-tv">标志图</a></li>
                            <li><i class="ico-tv tv1"></i><a href="javascript:void(0)" class="op-tv">邮件图</a></li>
                            <li><i class="ico-tv tv1"></i><a href="javascript:void(0)" class="op-tv">天猫图</a></li>
                            <li><i class="ico-tv tv1"></i><a href="javascript:void(0)" class="op-tv">场景图</a>                                
                                <ul class="subtree hide">
                                    <li><i class="ico-tv tv1"></i><a href="javascript:void(0)" class="op-tv">标志图</a></li>
                                    <li><i class="ico-tv tv1"></i><a href="javascript:void(0)" class="op-tv">邮件图</a></li>
                                    <li><i class="ico-tv tv1"></i><a href="javascript:void(0)" class="op-tv">天猫图</a></li>
                                    <li><i class="ico-tv tv1"></i><a href="javascript:void(0)" class="op-tv">场景图</a></li>
                                </ul>
                            </li>    
                        </ul>
                    </li>     
                    <li><i class="ico-tv tv1"></i><a href="javascript:void(0)" class="op-tv">邮件图</a></li>
                    <li><i class="ico-tv tv1"></i><a href="javascript:void(0)" class="op-tv">天猫图</a></li>
                </ul>
            
            </li>
        </ul>
    </div>

STYLE:

<style type="text/css">
    *{ margin:0; padding:0; }
    .mt30{ margin:30px 0 0 0; }
    .container{ width:800px; margin:0 auto; padding:30px; background:#f5f5f5; }
    ul{ list-style:none; }
    a{ text-decoration:none; font-size:12px; border:0; }
    .tree{ display:block; }
    .tree li{ clear:both; display:block; }
    .tree i,a{ float:left;  }
    .tree li ul.subtree{  display:block; margin-left:20px; }    
    .tree li ul.subtree.hide{ display:none; }
    .tree .ico-tv{ width:20px; height:20px; display:block; margin-top:2px; }
    /*+*/
    .tree .tv1{ background:url(images/ico-treeview-1.png) no-repeat; cursor:pointer; }
    /*-*/
    .tree .tv2{ background:url(images/ico-treeview-2.png) no-repeat; cursor:pointer; }
    .tree .o{ color:#ff8400; }
</style>

JAVASCRIPT:

<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
    $(".tree .ico-tv").click(function(){
        if($(this).parent("li").children("ul.subtree").length>0){
            $(this).toggleClass("tv2");
            $(this).parent("li").children("ul.subtree").toggleClass("hide");
        }
    });
    
    $(".tree .op-tv").click(function(){
        --节点标题点击事件
    });
    
    function treenode(nodes) {
        $.each(nodes, function (i,n) {
            if ($(n).children("ul.subtree").length > 0) {
                treenode($(n).children("ul.subtree li"));
            }else{
                $(n).children("i.ico-tv").removeClass("tv1");
            }
        });
    }
    
    treenode($(".tree li")); --递归取消没有子节点的图标
});
</script>

总结:

好的功能从小Case做起,平时多积累,才能够多学活用,动手比空想更重要!

自定义TREEVIEW UL无限极嵌套的更多相关文章

  1. 转:打造DropDownList,TreeView,ListBox无限极分类目录树

    [csharp] view plaincopyprint? #region DropDownList无限递归显示层次关系 /// <summary> /// 创建无限分级下拉列表框 /// ...

  2. 夺命雷公狗ThinkPHP项目之----企业网站21之网站前台二级分类显示名称(TP自定义函数展示无限极分类)

    我们实现网站二级分类的显示的时候,先要考虑的是直接取出顶级栏目,控制器代码如下所示: <?php namespace Home\Controller; use Think\Controller; ...

  3. WPF—TreeView无限极绑定集合形成树结构

    1.如图所示:绑定树效果图 2.前台Xaml代码: <Window x:Class="WpfTest.MainWindow" xmlns="http://schem ...

  4. [No0000D1]WPF—TreeView无限极绑定集合形成树结构

    1.如图所示:绑定树效果图 2.前台Xaml代码: <Window x:Class="WpfTest.MainWindow" xmlns="http://schem ...

  5. sqlalchemy tree 树形分类 无限极分类的管理。预排序树,左右值树。sqlalchemy-mptt

    简介: 无限极分类是一种比较常见的数据格式,生成组织结构,生成商品分类信息,权限管理当中的细节权限设置,都离不开无限极分类的管理. 常见的有链表式,即有一个Pid指向上级的ID,以此来设置结构.写的时 ...

  6. php 实现无限极分类

    原始数据 $array = array( array('id' => 1, 'pid' => 0, 'n' => '河北省'), array('id' => 2, 'pid' ...

  7. js实现无限极分类

    转载注明出处!!! 转载注明出处!!! 转载注明出处!!! 因为要实现部门通讯录,后台传来的数据是直接从数据库里拿的部门表,所以没有层级分类,只有parentId表示从属关系,所以分类的事情就交给我来 ...

  8. C#无限极分类树-创建-排序-读取 用Asp.Net Core+EF实现

    今天做一个管理后台菜单,想着要用无限极分类,记得园子里还是什么地方见过这种写法,可今天找了半天也没找到,没办法静下心来自己写了: 首先创建节点类(我给它取名:AdminUserTree): /// & ...

  9. asp.net sql无限极分类实例程序

    数据库结构  代码如下 复制代码 create table category(    id                  int,                    clsno         ...

随机推荐

  1. poj2105 IP Address(简单题)

    题目链接:id=2105">http://poj.org/problem?id=2105 ----------------------------------------------- ...

  2. 使用VS2012 开发SharePoint 2013 声明式的action(activity) 综合实例

    本文讲述使用VS2012 开发SharePoint 2013 声明式的action 综合实例. 需求同: http://blog.csdn.net/abrahamcheng/article/detai ...

  3. 进程和cpu的相关知识和简单调优方案

    进程就是一段执行的程序,每当一个程序执行时.对于操作系统本身来说,就创建了一个进程,而且分配了相应的资源.进程能够分为3个类别:     1.交互式进程(I/O)     2.批处理进程 (CPU) ...

  4. 解决mac的日历问题:服务器响应一个错误

    出了一个问题好久,平时也不用这个同步不靠谱的日历.今晚花点时间解决了下. 参考Apple 官网日历的问题解答. 当出现如下情况时: 退出日历和提醒事项. 从 Apple () 菜单中选取“系统偏好设 ...

  5. 使用python selenium进行自动化functional test

    Why Automation Testing 现在似乎大家都一致认同一个项目应该有足够多的测试来保证功能的正常运作,而且这些此处的‘测试’特指自动化测试:并且大多数人会认为如果还有哪个项目依然采用人工 ...

  6. 使用maven命令建立java项目

    在terminal中输入: mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name} -Darc ...

  7. 【模式识别】Learning To Rank之RankBoost

    RankBoost的思想比較简单,是二元Learning to rank的常规思路:通过构造目标分类器,使得pair之间的对象存在相对大小关系.通俗点说,把对象组成一对对的pair,比方一组排序r1& ...

  8. 具体解释Android中AsyncTask的使用

    在Android中实现异步任务机制有两种方式,Handler和AsyncTask. Handler模式须要为每个任务创建一个新的线程,任务完毕后通过Handler实例向UI线程发送消息,完毕界面的更新 ...

  9. Xcode无法设置视图的 autosizing control原因

    转自:Xcode无法设置视图的 autosizing control原因 学习Xcode的iOS编程时,可能会发现Autosizing Control不见了,其原因很简单,因为你在设置中选择了Auto ...

  10. UNIX标准化及实现之POSIX标准可选头文件

    POSIX标准定义的可选头文件 头文件 说明 <aio.h> 异步I/O <mqueue.h> 消息队列 <pthread.h> 线程 <sched.h> ...