欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

小程序实现jquery "toggle"效果的折叠面板

程序员文章站 2022-05-15 17:00:01
...

小程序中只能操作数据,不能获得DOM元素,控制DOM元素的显示和隐藏需要绑定变量来进行控制,如果需要控制一组DOM元素的需要借助于数组来实现。

index.wxml:
//使用远程请求数据,将DOM结构循环即可

 <view class="item-list">
    <view class="item">
      <view class="item-tit" data-index="0" bindtap="bindViewTap">
        第一个
      </view>
      <view class="item-con {{statusArr[0] ? 'vshow' : 'vhide'}}">
        第一个的内容
      </view>     
    </view>
     <view class="item">
      <view class="item-tit" data-index="1" bindtap="bindViewTap">
        第二个
      </view>
      <view class="item-con {{statusArr[1] ? 'vshow' : 'vhide'}}">
        第二个的内容
      </view>     
    </view>
     <view class="item">
      <view class="item-tit" data-index="2" bindtap="bindViewTap">
        第三个
      </view>
      <view class="item-con  {{statusArr[2] ? 'vshow' : 'vhide'}}">
        第三个的内容
      </view>     
    </view>
  </view>

index.wxss:

.vshow{
  display:block !important;
}
.vhide{
  display:none !important;
}
.item-tit{
  border:1px solid #eee;
  height:80rpx;
  line-height:80rpx;
}
.item-con{
  height:100rpx;
  background:#aaa;
  font-size:16px;  
  display:none;
}

index.js

Page({
  data: {
       statusArr:[false,false,false]//假设有三个,这个可根据返回的数据个数进行赋值       
  },
  //事件处理函数
  bindViewTap: function(e) {
    var that = this;
    var idx = e.target.dataset.index;

    var updateStatusArr = that.data.statusArr.slice(0); //复制新数组

    updateStatusArr[idx] = !that.data.statusArr[idx];

    that.setData({      
      'statusArr': updateStatusArr
    });    
  },
  onLoad: function () {  

  }
});

效果:
小程序实现jquery "toggle"效果的折叠面板

小程序实现jquery "toggle"效果的折叠面板