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 继承实现方法
Aug 26 Javascript
javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
Jan 09 Javascript
javascript日期比较方法实例分析
Jun 17 Javascript
详解Angular开发中的登陆与身份验证
Jul 27 Javascript
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
Jun 01 jQuery
详解AngularJS ng-class样式切换
Jun 27 Javascript
详谈innerHTML innerText的使用和区别
Aug 18 Javascript
Vue上传组件vue Simple Uploader的用法示例
Aug 25 Javascript
bootstrap datepicker的基本使用教程
Jul 09 Javascript
浅析Angular 实现一个repeat指令的方法
Jul 21 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
Nov 16 Javascript
如何在vue中使用video.js播放m3u8格式的视频
Feb 01 Vue.js
小程序异步问题之多个网络请求依次执行并依次收集请求结果
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解析字符串里所有URL地址的方法
2015/04/03 PHP
Symfony2安装的方法(2种方法)
2016/02/04 PHP
php-fpm开启状态统计的方法详解
2017/06/23 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
关于Curl在Swoole协程中的解决方案详析
2019/09/12 PHP
Laravel 登录后清空COOKIE的操作方法
2019/10/14 PHP
laravel 自定义常量的两种方案
2019/10/14 PHP
php 利用socket发送GET,POST请求的实例代码
2020/07/04 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
浅谈tudou土豆网首页图片延迟加载的效果
2010/06/23 Javascript
Javascript面向对象设计一 工厂模式
2011/12/20 Javascript
JS生成不重复随机数组的函数代码
2014/06/10 Javascript
推荐4个原生javascript常用的函数
2015/01/12 Javascript
js获取内联样式的方法
2015/01/27 Javascript
AngularJS 避繁就简的路由
2016/07/01 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
2016/08/09 Javascript
深入理解(function(){... })();
2016/08/16 Javascript
聊一聊Vue.js过渡效果
2016/09/07 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
深入剖析Node.js cluster模块
2018/05/23 Javascript
跨平台python异步回调机制实现和使用方法
2013/11/26 Python
Python入门篇之文件
2014/10/20 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
在Django model中设置多个字段联合唯一约束的实例
2019/07/17 Python
Django之form组件自动校验数据实现
2020/01/14 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
2021/02/06 Python
利用CSS3伪元素实现逐渐发光的方格边框
2017/05/07 HTML / CSS
什么是makefile? 如何编写makefile?
2012/08/08 面试题
法律进社区实施方案
2014/03/21 职场文书
民事授权委托书范文
2014/08/02 职场文书
教师演讲稿开场白
2014/08/25 职场文书
作风转变年心得体会
2014/10/22 职场文书
南京导游词
2015/02/03 职场文书
2015暑期爱心支教策划书
2015/07/14 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书
一级电子管军用接收机测评
2022/04/05 无线电