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 简单高效判断数据类型 系列函数 By shawl.qiu
Mar 06 Javascript
js 判断浏览器使用的语言示例代码
Mar 22 Javascript
javascript实现点击提交按钮后显示loading的方法
Jul 03 Javascript
解析jQueryEasyUI的使用
Nov 22 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
May 02 Javascript
vue.js项目打包上线的图文教程
Nov 16 Javascript
浅谈Angular 中何时取消订阅
Nov 22 Javascript
JS实现的视频弹幕效果示例
Aug 17 Javascript
jQuery实现鼠标移入移出事件切换功能示例
Sep 06 jQuery
layui实现左侧菜单点击右侧内容区显示
Jul 26 Javascript
解决layui追加或者动态修改的表单元素“没效果”的问题
Sep 18 Javascript
小程序实现上下切换位置
Nov 16 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
德劲1103二次变频版的打磨
2021/03/02 无线电
php连接数据库代码应用分析
2011/05/29 PHP
php中如何同时使用session和cookie来保存用户登录信息
2013/07/05 PHP
ThinkPHP的URL重写问题
2014/06/22 PHP
PHP函数http_build_query使用详解
2014/08/20 PHP
Yii中创建自己的Widget实例
2016/01/05 PHP
浅谈PHP中的Trait使用方法
2019/03/22 PHP
Laravel重定向,a链接跳转,控制器跳转示例
2019/10/22 PHP
PHP实现单例模式建立数据库连接的方法分析
2020/02/11 PHP
Javascript 强制类型转换函数
2009/05/17 Javascript
jQuery 常见学习网站与参考书
2009/11/09 Javascript
js中巧用cssText属性批量操作样式
2011/03/13 Javascript
js 实现在离开页面时提醒未保存的信息(减少用户重复操作)
2013/01/16 Javascript
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
JS+CSS设置img在DIV中只显示Img垂直居中的部分
2013/10/24 Javascript
Vue.js -- 过滤器使用总结
2017/02/18 Javascript
React进阶学习之组件的解耦之道
2017/08/07 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
2020/02/05 Javascript
微信小程序自定义tabBar的踩坑实践记录
2020/11/06 Javascript
Python Tkinter基础控件用法
2014/09/03 Python
Python中的anydbm模版和shelve模版使用指南
2015/07/09 Python
理解Python中的绝对路径和相对路径
2017/08/30 Python
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
Python chardet库识别编码原理解析
2020/02/18 Python
Django 404、500页面全局配置知识点详解
2020/03/10 Python
社会实践感言
2014/01/25 职场文书
理工大学毕业生自荐信范文
2014/02/22 职场文书
领导班子个人对照检查材料(群众路线)
2014/09/26 职场文书
作风整顿个人剖析材料
2014/10/06 职场文书
自我查摆剖析材料
2014/10/11 职场文书
党员贯彻十八大精神思想汇报范文
2014/10/25 职场文书
教师党的群众路线学习心得体会
2014/11/04 职场文书
北京天坛导游词
2015/02/12 职场文书
学校2015年纠风工作总结
2015/05/15 职场文书
单机多实例部署 MySQL8.0.20
2022/05/15 MySQL