js点击 收起 查看全部

<ul id='listUl' class='clearfix'>
        <li v-for='item in listOption.listData'>
          <div class="commentMsg meddleFontSize">
            <p class="Pellipsis2 webkitOrient mainMsg">{{item.tags}}</p>
             <!--大于60字才有隐藏效果-->
            <p v-if="item.tags.length>60">
              <span class="activedTheme lookAll">查看全文</span>
              <span class="activedTheme hideAll displayNone">收起</span>
            </p>
          </div>
        </li>
      </ul>
 mounted: function () {
      var _this=this;
      document.getElementById('listUl').addEventListener('click',function(ev){
        var ev=ev||window.event;
        var targetObj=$(ev.target);

        if(targetObj.attr('class')){
          if(targetObj.attr('class').indexOf('lookAll')!=-1){
            var parents=targetObj.parents('.commentMsg');
            parents.find('.mainMsg').removeClass('Pellipsis2');
            parents.find('.hideAll').removeClass('displayNone');
            targetObj.addClass('displayNone');
          }else if(targetObj.attr('class').indexOf('hideAll')!=-1){
            var parents=targetObj.parents('.commentMsg');
            parents.find('.mainMsg').addClass('Pellipsis2');
            parents.find('.lookAll').removeClass('displayNone');
            targetObj.addClass('displayNone');
          }

        }
      })
    },

 

要实现点击元素展开或收起子元素的功能,可以通过 JavaScript 来控制元素的显示状态。常见的实现方式是通过切换 CSS 的 `display` 属性或使用 `classList` 来切换类名,从而改变子元素的可见性。以下是一个完整的实现示例: ### HTML 结构 ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>展开/收起子元素</title> <style> .box { width: 200px; padding: 10px; background-color: #f0f0f0; border: 1px solid #ccc; cursor: pointer; } .sub-element { display: none; margin-top: 10px; padding: 10px; background-color: #e0e0e0; } </style> </head> <body> <div class="box" onclick="toggleSubElement(this)"> 点击展开/收起 <div class="sub-element"> 这是子元素内容 </div> </div> <script> function toggleSubElement(element) { const subElement = element.querySelector('.sub-element'); if (subElement.style.display === 'none' || subElement.style.display === '') { subElement.style.display = 'block'; } else { subElement.style.display = 'none'; } } </script> </body> </html> ``` ### JavaScript 实现逻辑 1. **HTML 结构**:包含一个可点击的主盒子 `.box` 和一个子元素 `.sub-element`,子元素默认隐藏。 2. **CSS 样式**:通过 `display: none;` 隐藏子元素,点击后通过 JavaScript 改变其显示状态。 3. **JavaScript 函数**: - 定义 `toggleSubElement` 函数,接收当前点击的元素作为参数。 - 使用 `querySelector` 查找子元素 `.sub-element`。 - 通过判断 `style.display` 的值来切换子元素的显示状态,`none` 表示隐藏,`block` 表示显示。 ### 使用 `classList` 控制类名的方式 除了直接操作 `display` 属性,还可以通过添加或移除类名来控制显示状态,这种方式更灵活且易于维护: #### 修改后的 CSS ```css .sub-element { display: none; margin-top: 10px; padding: 10px; background-color: #e0e0e0; } .sub-element.active { display: block; } ``` #### 修改后的 JavaScript ```javascript function toggleSubElement(element) { const subElement = element.querySelector('.sub-element'); subElement.classList.toggle('active'); } ``` 通过 `classList.toggle` 方法,可以轻松地切换类名,从而控制子元素的显示或隐藏状态。这种方式避免了直接操作 `style` 属性,使代码更具可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值