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 相关文章推荐
JS刷新框架外页面七种实现代码
Feb 18 Javascript
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
Apr 02 Javascript
js获得网页背景色和字体色的方法
Mar 21 Javascript
JS实现很酷的水波文字特效实例
Feb 26 Javascript
Javascript动画的实现原理浅析
Mar 02 Javascript
浅谈JavaScript的Polymer框架中的事件绑定
Jul 29 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
Jul 27 Javascript
JavaScript重定向URL参数的两种方法小结
Oct 19 Javascript
基于Vue2的移动端开发环境搭建详解
Nov 03 Javascript
jquery中each循环的简单回滚操作
May 05 jQuery
JavaScript遍历查找数组中最大值与最小值的方法示例
May 24 Javascript
JS自定义对象创建与简单使用方法示例
Jan 15 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
我的论坛源代码(九)
2006/10/09 PHP
浅谈PHP变量作用域以及地址引用问题
2013/12/27 PHP
PHP COOKIE及时生效的方法介绍
2014/02/14 PHP
深入理解PHP变量的值类型和引用类型
2015/10/21 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
根据地区不同显示时间的javascript代码
2007/08/13 Javascript
再谈JavaScript线程
2015/07/10 Javascript
Javascript HTML5 Canvas实现的一个画板
2020/04/12 Javascript
深入理解JavaScript中Ajax
2016/08/02 Javascript
AngularJS 服务详细讲解及示例代码
2016/08/17 Javascript
JS简单实现获取元素的封装操作示例
2017/04/07 Javascript
Node+Express+MongoDB实现登录注册功能实例
2017/04/23 Javascript
JS实现身份证输入框的输入效果
2017/08/21 Javascript
Vue-cli中为单独页面设置背景色的实现方法
2018/02/11 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
JavaScript async/await原理及实例解析
2020/12/02 Javascript
Python获取apk文件URL地址实例
2013/11/01 Python
Python如何发布程序的详细教程
2018/10/09 Python
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
使用python+whoosh实现全文检索
2019/12/09 Python
Python爬虫与反爬虫大战
2020/07/30 Python
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
美国护肤咨询及美容产品电商:Askderm
2017/02/24 全球购物
加拿大当代时尚服饰、配饰和鞋类专业零售商和制造商:LE CHÂTEAU
2017/10/06 全球购物
意大利自行车商店:Cingolani Bike Shop
2019/09/03 全球购物
一套软件测试笔试题
2014/07/25 面试题
大学生就业推荐信范文
2013/11/29 职场文书
党章学习思想汇报
2014/01/14 职场文书
网上祭先烈心得体会
2014/09/01 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
党性分析材料格式
2014/12/19 职场文书
学习雷锋主题班会
2015/08/14 职场文书
React配置子路由的实现
2021/06/03 Javascript
javascript数组includes、reduce的基本使用
2021/07/02 Javascript