实现可折叠的列表

HTML:


<!DOCTYPE html><html>

<head>    <meta charset="utf-8"/>    <title></title>    <link type="text/css" rel="stylesheet" href="index.css"/>    <script type="text/javascript" src="js/jquery-2.2.2.min.js"></script>    <style type="text/css">        ul {            font-size: 20px;        }    </style>    <script type="text/javascript">        $(function () {

            $("li:has(ul)").click(function (event) {  //event表示事件对象                //js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远是直接接受事件的目标DOM元素;                if (this == event.target) {//event.target属性的作用是获取到出发事件的元素                    if ($(this).children().is(‘:hidden‘)) {                        $(this)                                .css(‘list-style-image‘, ‘url(img/minus.png)‘)                                .children().show();                    } else {                        $(this)                                .css(‘list-style-image‘, ‘url(img/plus.png)‘)                                .children().hide();                    }                }                return false;  //阻止链接跳转            })                    .css(‘cursor‘, ‘pointer‘)                    .click();            $(‘li:not(:has(ul))‘).css({                cursor: ‘default‘,                ‘list-style-image‘: ‘none‘            });

            $(‘li:has(ul)‘).css({                cursor: ‘default‘,                ‘list-style-image‘: ‘url(img/plus.png)‘            });        });    </script></head>

<body><fieldset>    <legend>可折叠的列表</legend>    <ul id="ul">        <li>列表1            <ul>                <li>列表1.1                    <ul>                        <li>列表1.1.1</li>                        <li>列表1.1.2</li>                        <li>列表1.1.3</li>                    </ul>                </li>                <li>列表1.2</li>                <li>列表1.3</li>            </ul>        </li>        <li>列表2</li>        <li>列表2</li>        <li>列表4</li>        <li>列表5            <ul>                <li>列表1.1                    <ul>                        <li>列表1.1.1</li>                        <li>列表1.1.2</li>                        <li>列表1.1.3</li>                    </ul>                </li>                <li>列表1.2</li>                <li>列表1.3</li>            </ul>        </li>    </ul>

</fieldset>

</body>

</html>
 

result:

eg_one:

HTML:

<!DOCTYPE html><html>

<head>    <meta charset="utf-8"/>    <script src="js/jquery-2.2.2.min.js"></script>    <script type="text/javascript">        $(function () {            $(".content").not(":first").hide();            var oNav = document.getElementById("nav");            var oLabel = oNav.getElementsByTagName("label");            var content = $(".content");            $(oLabel).click(function () {                var oLa = $(this);                var oContent = oLa.next();                content.slideUp("normal");                oContent.slideDown("slow");

            })        });    </script>    <style type="text/css">        label {            font-size: 18px;            color: red;            font-weight: bold;        }

        .content {            padding-left: 20px;        }    </style></head>

<body><section id="nav">    <div>        <label>第一行</label>

        <div class="content">第一行的内容</div>    </div>

    <div>        <label>第二行</label>

        <div class="content">第二行的内容</div>    </div>

    <div>        <label>第三行</label>

        <div class="content">第三行的内容</div>    </div></section></body>

</html>

result:

eg_two:

html:

<!DOCTYPE html><html>

<head>    <meta charset="utf-8"/>    <script src="js/jquery-2.2.2.min.js"></script>    <script type="text/javascript">        $(function () {            a = function (event) { //event表示事件对象                //js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远是直接接受事件的目标DOM元素;                if (this == event.target) { //event.target属性的作用是获取到出发事件的元素                    if ($(this).children().not(":first").is(‘:hidden‘)) {                        $(this)                                .css(‘list-style-image‘, ‘url(img/minus.png)‘)                                .children().not(":first").show();                    } else {                        $(this)                                .css(‘list-style-image‘, ‘url(img/plus.png)‘)                                .children().not(":first").hide();                    }                }                return false; //阻止链接跳转            }

            var one = $(".li_one");            var two = $(".li_two");            one.children().has("li").hide();            two.children().has("li").hide();

            one.click(a);            two.click(a);            $(‘li:not(:has(ul))‘).css({                cursor: ‘default‘,                ‘list-style-image‘: ‘none‘            });            $(‘li:has(ul)‘).css({                cursor: ‘default‘,                ‘list-style-image‘: ‘url(img/plus.png)‘            });        });    </script>    <style type="text/css">        .li_one {            font-size: 18px;            color: black;        }

        .li_two {            font-size: 16px;            color: red;        }

        .li_three {            font-size: 14px;            color: darkorchid;        }

    </style></head>

<body><ul>    <li class="li_one">        <label>列表1</label>        <ul>            <li class="li_two"><label>列表1.1</label>                <ul>                    <li class="li_three"><label>列表1.11</label></li>                    <li class="li_three"><label>列表1.12</label></li>                    <li class="li_three"><label>列表1.13</label></li>                </ul>

            </li>            <li class="li_two"><label>列表1.2</label>

            </li>            <li class="li_two"><label>列表1.3</label>

            </li>        </ul>    </li>    <li class="li_one"><label>列表2</label></li>    <li class="li_one"><label>列表3</label>        <ul>            <li class="li_two"><label>列表3.1</label>                <ul>                    <li class="li_three"><label>列表3.11</label></li>                    <li class="li_three"><label>列表3.12</label></li>                    <li class="li_three"><label>列表3.13</label></li>                </ul>            </li>            <li class="li_two"><label>列表3.2</label>            </li>            <li class="li_two"><label>列表3.3</label>           </li>        </ul>    </li>    <li class="li_one"><label>列表4</label></li></ul></body></html>

result:


 

 

时间: 2024-08-03 05:48:27

实现可折叠的列表的相关文章

[Android]BaseExpandableListAdapter实现可折叠的列表

使用BaseExpandableListAdapter 可以实现所谓的可折叠的列表,例如QQ里好友的分组的功能. 基于基于BaseExpandableListAdapter扩展的ExpandableList用法,现在网上流行的主要有两种:第一种是向BaseExpandableListAdapter传入两个数组,第一个是表示Group(目录头)信息的一维数组,第二个是表示Child(目录子项)的二维数组数组:第二种是构建两个类,一个是表示目录信息的GroupInfo类,另一个是表示子项信息的Chi

Android基础入门教程——2.4.12 ExpandableListView(可折叠列表)的基本使用

Android基础入门教程--2.4.12 ExpandableListView(可折叠列表)的基本使用 标签(空格分隔): Android基础入门教程 本节引言: 本节要讲解的Adapter类控件是ExpandableListView,就是可折叠的列表,它是ListView的子类, 在ListView的基础上它把应用中的列表项分为几组,每组里又可包含多个列表项.至于样子, 类似于QQ联系人列表,他的用法与ListView非常相似,只是ExpandableListVivew显示的列表项 需由Ex

255ExpandableListView(可折叠列表)的基本使用

本节引言: 本节要讲解的Adapter类控件是ExpandableListView,就是可折叠的列表,它是ListView的子类, 在ListView的基础上它把应用中的列表项分为几组,每组里又可包含多个列表项.至于样子, 类似于QQ联系人列表,他的用法与ListView非常相似,只是ExpandableListVivew显示的列表项 需由ExpandableAdapter提供. 下面我们来学习这个控件的基本使用! 官方API:ExpandableListView 1.相关属性 android:

站在巨人的肩膀上---重新自定义 android- ExpandableListView 收缩类,实现列表的可收缩扩展

距离上次更新博客,时隔略长,诸事繁琐,赶在去广州答辩之前,分享下安卓 android 中的一个 列表收缩 类---ExpandableListView 先上效果图: 如果想直接看实现此页面的代码请下滑到 红线 下 关于这个类的具体各函数的使用说明,这里不作详细说明,提供一个链接http://www.apkbus.com/android-124715-1-1.html,里面有关于此类的详细介绍. 我在这里主要通过源代码的注释和必要的说明,说明如何实现自定义的收缩列表. 必要的函数: 0-> 1 E

开发技巧汇总|对于imag.js你不知道的事

1.imag.js里有哪些标准JavaScript对象? imag.js里的标准JavaScript对象有Object, Function, Array, Boolean, Date, Math, Number, String, RegExp,Global Functions, JSON. 2.为什么客户端会提示XML语法错误? imag.js的代码文档遵循严格的XML语法规范,开发时要注意以下地方: 1. label, script, web等标签的text可能含有XML特殊符号<.&,

Android学习笔记二十七之ExpandableListView可折叠列表和StackView栈视图

Android学习笔记二十七之ExpandableListView可折叠列表和StackView栈视图 ExpandableListView可折叠列表 这一节我们介绍第三个用适配器的控件,ExpandableListView可折叠列表.这个控件可以实现我们在QQ中非常常见好友分组功能,ExpandableListView是ListView的子类,用法跟ListView差不多,下面我们来学习这个控件的基本使用: 常用属性: android:childDivider:指定各组内子类表项之间的分隔条,

vue+element+echarts饼状图+可折叠列表

html: <div id="echartsDiv" style="width: 48%; height: 430px; float: left;"> </div> <div id="tableDiv" style="width: 52%;float: left;"> <el-table :data="tableData" border row-key="

模拟实现 百度翻译 右下方的可折叠的分享按钮列表

自从开始学习前端后,平时看到浏览器上的一些出彩的控件都想自己实现一下O(∩_∩)O,不知大家有没有这个感觉.接下来就和大家分享一个,原控件来自百度翻译右下方,大家仔细找找应该能找到,如图所示: 感觉蛮有意思的,实现起来也不复杂,比较适合练手.好吧,废话不多说了,直接上代码吧. html代码: <!DOCTYPE html> <html> <head> <meta charset = 'utf-8'/> <title>zoom</title&

jeasyUI属性列表

属性分为CSS片段和JS片段. CSS类定义:1.div easyui-window        生成一个window窗口样式.      属性如下:                   1)modal:是否生成模态窗口.true[是] false[否]                   2)shadow:是否显示窗口阴影.true[显示] false[不显示] 2.div easyui-panel          生成一个面板.       属性如下:                 1