html中ul列表的折叠,jq 实现ul列表折叠下拉遇到的问题

本文介绍了如何使用CSS和jQuery实现HTML UL列表的折叠效果。通过设置`display`属性和利用`.active`类控制列表的展开与折叠状态。同时,提供了一个通用的方法`listData`用于处理数据请求和DOM更新,实现列表的动态加载。示例中展示了两个列表的折叠功能,并给出了点击事件的处理逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.ul li 布局,实现li换行:

ul {

display: block;

list-style: none;

}

li {

float: left;

list-style: none;

margin-left: 10px;

}

效果例如图:

bVbrRsp?w=1735&h=564

我这是鼠标移动到子目录4、、5、6那行一级目录时,悬浮显示的二级子目录。

至于放几个换行,看你自己设置的ul宽度和li里面的文字宽度了,自己定。

2.第一次点击的时候,进行数据请求,给ul设置一个.active {箭头旋转朝上的样式},,代表是展开的状态,第二点击时,判断有无.active类,有的话,把.active去掉,不进行数据请求操作即可;思路是这样子。

若数据没变化的话,其实不必每次点击的时候请求数据,初始化请求后,可以让dom隐藏显示来控制,类似.active思路,写个.hide{ display:none}。

3.多个列表 公用一个方法 ,能把不同的地方提取为参数即可,其他相同之处封装为一个方法,在不同的地方调用时传参数即可,思路是这样。

不知道你想做什么,随便写个例子吧:

这是一个列表1
这是一个列表2

listData('.list',"./data/permisson.json",''); //调用

//折叠列表事件

$('.fa-chevron-down.fa1').click(function () {

if($(this).hasClass('active')){

//已存在.active,即是第二次点击要收起,不请求数据

$(this).removeClass('active');

} else {

//不存在.active,即是第一次点击要展开,请求数据

console.log(123);

$(this).toggleClass('open');

listData('.list1',"./data/permisson.json",'');

$(this).addClass('active');

}

});

$('.fa-chevron-down.fa2').click(function () {

//逻辑随意,同上也可

console.log(123);

$(this).toggleClass('open');

listData('.list2',"xxx.json",'xxxx');

});

function listData(selector,url,data){

new AjaxRequest({

type: "get",

url: url,

param: data,

isShowLoader: true,

dataType: "",

callBack: function (res) {

var data = res.data;

for (var i = 0; i < data.length; i++) {

var html = '';

html += '

' + data[i].Name +

'(' +

'' +

data[i].leftNum +

'' +

'/' +

'' +

data[i].totalNum +

'' +

')' +

'

';

$(selector).append(html);

}

}

});

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值