vue列表单项展开收缩功能之this.$refs的详解


Posted in Javascript onMay 05, 2019

展开效果?看红框区域

vue列表单项展开收缩功能之this.$refs的详解

收缩效果?看红框区域

 vue列表单项展开收缩功能之this.$refs的详解

接下来看代码逻辑

###template部分:已去除与本文不相关的功能代码

<li class="main-video"v-for="(item, index) of courseSubList" :key="item.id">
  <div class="audio-name">
    <div class="img-l">
      <span class="img-l-num">{{index+1}}</span>
      <span class="img-l-name">{{item.subName}}</span>
    </div>
    <div class="img-r" @click="showHide(index)" ref="arrow">
      <i class="iconfont"></i>
    </div>
  </div>
  <div class="audio-body" ref="child">
    <div class="body-l">
      <p class="body-l-num body-l-num-video">
        <i class="iconfont"></i>
      </p>
      <span class="body-l-name">{{item.fileName}}</span>
    </div>
    <div class="body-r">
      <i class="iconfont" @click="deletCourseSub(item.id)"></i>
    </div>
  </div>
</li>

###js部分:已去除与本文不相关的功能代码

data() {
	return {
		courseSubList: [], // 课程正文列表
	}
},
methods: {
  showHide(index) {
   if (this.$refs.child[index].style.display === 'none') {
    this.$refs.child[index].style.display = 'flex'
    this.$refs.arrow[index].style.transform = 'rotateX(0deg)'
   } else {
    this.$refs.child[index].style.display = 'none'
    this.$refs.arrow[index].style.transform = 'rotateX(180deg)'
   }
  },
  deletCourseSub(id) {
	  // 功能代码省略
  }
}

###分析过程:

  1. 分别给展开折叠的箭头加ref="arrow"属性;
  2. 分别给列表单项内容区最外层标签即本文的class="audio-body"的标签加ref=“child”;
  3. 再给箭头标签区域加个showHide(index)事件;
  4. 最后通过对应的index利用vue的ref属性改变对应的列表单项展开折叠;

以上所述是小编给大家介绍的vue列表单项展开收缩功能之this.$refs详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
基于jquery实现的表格分页实现代码
Jun 21 Javascript
FireFox下XML对象转化成字符串的解决方法
Dec 09 Javascript
js日历功能对象
Jan 12 Javascript
js 输出内容到新窗口具体实现代码
May 31 Javascript
基于jquery实现一张图片点击鼠标放大再点缩小
Sep 29 Javascript
JavaScript获取XML数据附示例截图
Mar 05 Javascript
js判断浏览器类型及设备(移动页面开发)
Jul 30 Javascript
js实现点击切换TAB标签实例
Aug 21 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
Mar 19 Javascript
详解jQuery lazyload 懒加载
Dec 19 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
Jul 10 Javascript
JS实现随机抽取三人
Nov 06 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
May 05 #Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
May 05 #Javascript
Vue 中如何正确引入第三方模块的方法步骤
May 05 #Javascript
详解vue的双向绑定原理及实现
May 05 #Javascript
Vue+Express实现登录注销功能的实例代码
May 05 #Javascript
Vue 递归多级菜单的实例代码
May 05 #Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
May 05 #Javascript
You might like
php中fsockopen用法实例
2015/01/05 PHP
列举PHP的Yii 2框架的开发优势
2015/07/03 PHP
php正则修正符用法实例详解
2016/12/29 PHP
js 对象是否存在判断
2009/07/15 Javascript
js返回前一页刷新本页重载页面
2014/07/29 Javascript
使用jquery动态加载Js文件和Css文件
2015/10/24 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
2016/01/08 Javascript
javascript返回顶部的按钮实现方法
2016/01/09 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
javascript对浅拷贝和深拷贝的详解
2016/10/14 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
Javascript实现跨域后台设置拦截的方法详解
2017/08/04 Javascript
详解Vue CLI3配置解析之css.extract
2018/09/14 Javascript
基于Angular中ng-controller父子级嵌套的相关属性详解
2018/10/08 Javascript
用 js 写一个 js 解释器过程详解
2019/08/02 Javascript
通过vue写一个瀑布流插件代码实例
2019/09/07 Javascript
vue中使用GraphQL的实例代码
2019/11/04 Javascript
微信小程序wx.request的简单封装
2019/11/13 Javascript
JS如何寻找数组中心索引过程解析
2020/06/01 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
JS性能优化实现方法及优点进行
2020/08/30 Javascript
Python的Django框架中自定义模版标签的示例
2015/07/20 Python
Python判断某个用户对某个文件的权限
2016/10/13 Python
浅谈对yield的初步理解
2017/05/29 Python
python逆向入门教程
2018/01/15 Python
Python3转换html到pdf的不同解决方案
2019/03/11 Python
python binascii 进制转换实例
2019/06/12 Python
Pycharm连接远程服务器过程图解
2020/04/30 Python
python 还原梯度下降算法实现一维线性回归
2020/10/22 Python
Canvas实现保存图片到本地的示例代码
2018/06/28 HTML / CSS
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
军训自我鉴定
2014/01/22 职场文书
巴西世界杯32强口号
2014/06/05 职场文书
运动会1000米加油稿
2015/07/21 职场文书
浅谈Golang 切片(slice)扩容机制的原理
2021/06/09 Golang
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers