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怎么把&amp;字符换成&quot;&amp;amp:&quot;
Oct 19 Javascript
jQuery+html5实现div弹出层并遮罩背景
Apr 15 Javascript
jQuery实现表格展开与折叠的方法
May 04 Javascript
JavaScript性能优化之小知识总结
Nov 20 Javascript
基于jquery animate操作css样式属性小结
Nov 27 Javascript
理解javascript中的with关键字
Feb 15 Javascript
js实现千分符和保留几位小数的简单实例
Aug 01 Javascript
JS简单生成由字母数字组合随机字符串示例
May 25 Javascript
小程序实现抽奖动画
Apr 16 Javascript
js实现web调用摄像头 js截取视频画面
Apr 21 Javascript
Vue组件通信的几种实现方法
Apr 25 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
Dec 29 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替换超长文本中的特殊字符的函数代码
2012/05/22 PHP
C# WinForm中实现快捷键自定义设置实例
2015/01/23 PHP
php字符串过滤与替换小结
2015/01/26 PHP
thinkphp5实现无限级分类
2019/02/18 PHP
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
2014年最火的Node.JS后端框架推荐
2014/10/27 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
JS实时弹出新消息提示框并有提示音响起的实现代码
2016/04/20 Javascript
JavaScript常用代码书写规范的超全面总结
2016/09/11 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
nodejs实现发出蜂鸣声音(系统报警声)的方法
2017/01/18 NodeJs
常见的浏览器Hack技巧整理
2017/06/29 Javascript
详解Node中导入模块require和import的区别
2017/08/11 Javascript
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
jQuery中的类名选择器(.class)用法简单示例
2018/05/14 jQuery
微信小程序之事件交互操作实例分析
2018/12/03 Javascript
使用gulp构建前端自动化的方法示例
2018/12/25 Javascript
vue指令做滚动加载和监听等
2019/05/26 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
解析vue、angular深度作用选择器
2019/09/11 Javascript
解决vue 表格table列求和的问题
2019/11/06 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
Python卸载模块的方法汇总
2016/06/07 Python
Python读写zip压缩文件的方法
2018/08/29 Python
浅析Python四种数据类型
2018/09/26 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
python 两个一样的字符串用==结果为false问题的解决
2020/03/12 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
竞聘演讲稿精彩开头和结尾
2014/05/14 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
大学生团员个人总结
2015/02/14 职场文书
董事长年会致辞
2015/07/29 职场文书
SQL Server代理:理解SQL代理错误日志处理方法
2021/06/30 SQL Server
mysql 体系结构和存储引擎介绍
2022/05/06 MySQL