c:forEach循环时,里面便签的点击事件的实现方法

本文介绍使用c:forEach循环结合JavaScript实现点击dd标签展开与收起ul子元素的方法。提供两种实现方案,一种是纯JavaScript方法,另一种是在HTML中直接使用onclick属性。此外还介绍了如何阻止事件冒泡。

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

c:forEach循环时,点击dd标签时,下面的ul显示出来,再点击dd标签时,下面的ul隐藏

方法一:

//html中的代码
<c:forEach items="${street.listGrid}" var="community">
    <dd>
        <span  class="code">
            ▶&nbsp;${community.gdname}
            <span style="color:#666;font-size: 6px;">(${community.gridcode})</span>
        </span>
        <ul>
            <c:forEach items="${community.listGrid}" var="grid">
                <li>
                    <span class="code">${grid.gdname}
                        <span>(${grid.gridcode})</span>
                    </span>
                </li>
            </c:forEach>
        </ul>
    </dd>
 </c:forEach>

//js中的代码:
$("dl dd").click(function(){
    $(this).children('ul').toggle()
})

$("dl dd ul").click(function(){
    event.stopPropagation();
})

当click失效时,可以采取下面的方法
方法二:

//html中的代码
<c:forEach items="${street.listGrid}" var="community" varStatus="communityStatus">
    <dd onclick="showGrid(this.id)" id="community${communityStatus.index+1 }">
        <span  class="code">
            ▶&nbsp;${community.gdname}
            <span style="color:#666;font-size: 6px;">(${community.gridcode})</span>
                <ul>
                    <c:forEach items="${community.listGrid}" var="grid" varStatus="gridStatus">
                            <li onclick="noshow(this.id)" id="grid${gridStatus.index+1 }">
                                <span class="code">${grid.gdname}
                                    <span>(${grid.gridcode})</span></span>
                            </li>
                    </c:forEach>
                </ul>
        </span>
    </dd>
</c:forEach>

//js中的代码:
function showGrid(id){
    $("#"+id).children("ul").toggle();
}
function noshow(id){
    event.stopPropagation();
}

注释:event.stopPropagation() 方法阻止事件冒泡到父元素,阻止任何父事件处理程序被执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值