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 相关文章推荐
打印json对象的内容及JSON.stringify函数应用
Mar 29 Javascript
js判断一个字符串是以某个字符串开头的简单实例
Dec 27 Javascript
javaScript生成支持中文带logo的二维码(jquery.qrcode.js)
Jan 03 Javascript
Canvas + JavaScript 制作图片粒子效果
Feb 08 Javascript
Bootstrap缩略图的创建方法
Mar 22 Javascript
深入浅析javascript继承体系
Oct 23 Javascript
从零开始最小实现react服务器渲染详解
Jan 26 Javascript
一个Vue页面的内存泄露分析详解
Jun 25 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
Jul 23 jQuery
深入浅析Node环境和浏览器的区别
Aug 14 Javascript
vue实现鼠标移入移出事件代码实例
Mar 27 Javascript
Vue Element-ui表单校验规则实现
Jul 09 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操作Memcache实例介绍
2013/06/14 PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
2014/07/08 PHP
PHP实现图片自动清理的方法
2015/07/08 PHP
反射调用private方法实践(php、java)
2015/12/21 PHP
[原创]提供复制本站内容时出现,该文章转自脚本之家等字样的js代码
2007/03/27 Javascript
Firefox和IE浏览器兼容JS脚本写法小结
2008/07/07 Javascript
jQuery 全选效果实现代码
2009/03/23 Javascript
Jquery 绑定时间实现代码
2011/05/03 Javascript
三种取消选中单选框radio的方法
2014/09/09 Javascript
javascript实现playfair和hill密码算法
2014/12/07 Javascript
jQuery实现ichat在线客服插件
2014/12/29 Javascript
javascript正则表达式之search()用法实例
2015/01/19 Javascript
通过学习bootstrop导航条学会修改bootstrop颜色基调
2017/06/11 Javascript
在angular 6中使用 less 的实例代码
2018/05/13 Javascript
基于rollup的组件库打包体积优化小结
2018/06/18 Javascript
JavaScript解析机制与闭包原理实例详解
2019/03/08 Javascript
Vue实现input宽度随文字长度自适应操作
2020/07/29 Javascript
vue等两个接口都返回结果再执行下一步的实例
2020/09/08 Javascript
一个超级简单的python web程序
2014/09/11 Python
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
Django如何自定义分页
2018/09/25 Python
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
澳大利亚最好的在线时尚精品店:Princess Polly
2018/01/03 全球购物
EJB发布WEB服务一般步骤
2012/10/31 面试题
商务助理岗位职责
2013/11/13 职场文书
大学生职业生涯规划范文
2014/01/22 职场文书
趣味比赛活动方案
2014/02/15 职场文书
毕业生求职信范文
2014/06/29 职场文书
作风建设年活动总结
2014/08/27 职场文书
部门群众路线教育实践活动对照检查材料思想汇报
2014/10/07 职场文书
伏羲庙导游词
2015/02/09 职场文书
2015年工程师工作总结
2015/04/30 职场文书
大学生十八大感想
2015/08/11 职场文书
给领导敬酒词
2015/08/12 职场文书
Python基础之Socket通信原理
2021/04/22 Python
用Python实现屏幕截图详解
2022/01/22 Python