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 相关文章推荐
JavaScript中this关键字使用方法详解
Mar 08 Javascript
用javascript做拖动布局的思路
May 31 Javascript
javascript function、指针及内置对象
Feb 19 Javascript
关于document.cookie的使用javascript
Oct 29 Javascript
jquery ajax提交整个表单元素的快捷办法
Mar 27 Javascript
利用window.name实现windowStorage代码分享
Jan 02 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
Jun 06 Javascript
jQuery拖拽插件gridster使用指南
Apr 21 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
Aug 11 Javascript
JS实现元素上下左右移动效果
Oct 18 Javascript
three.js搭建室内场景教程
Dec 30 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
Nov 05 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入门教程 精简版
2009/12/13 PHP
深入php list()函数的详解
2013/06/05 PHP
php购物车实现方法
2015/01/03 PHP
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
JavaScript用Number方法实现string转int
2014/05/13 Javascript
jQuery回调函数的定义及用法实例
2014/12/23 Javascript
angularjs学习笔记之完整的项目结构
2015/09/26 Javascript
javascript中checkbox使用方法实例演示
2015/11/19 Javascript
JavaScript代码实现图片循环滚动效果
2020/03/19 Javascript
jQuery查看选中对象HTML代码的方法
2016/06/17 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
2016/08/08 Javascript
jquery easyui validatebox remote的使用详解
2016/11/09 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
2017/02/22 Javascript
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
JQuery表单元素取值赋值方法总结
2020/05/12 jQuery
Python打造出适合自己的定制化Eclipse IDE
2016/03/02 Python
python调用fortran模块
2016/04/08 Python
Python GUI Tkinter简单实现个性签名设计
2018/06/19 Python
一篇文章了解Python中常见的序列化操作
2019/06/20 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
python自定义时钟类、定时任务类
2021/02/22 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
HTML5 Canvas API中drawImage()方法的使用实例
2016/03/25 HTML / CSS
利用 Canvas实现绘画一个未闭合的带进度条的圆环
2019/07/26 HTML / CSS
维德科技C#面试题笔试题
2015/12/09 面试题
大学自我鉴定范文
2013/12/26 职场文书
员工培训心得体会
2013/12/30 职场文书
办公室文员工作职责
2014/01/31 职场文书
销售顾问工作计划书
2014/08/15 职场文书
2015年小学财务工作总结
2015/07/20 职场文书
活动简报范文
2015/07/22 职场文书
清明节随笔
2015/08/15 职场文书
投资入股协议书
2016/03/22 职场文书
2019最新版火锅店的创业计划书 !
2019/07/12 职场文书
MySQL 百万级数据的4种查询优化方式
2021/06/07 MySQL