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 04 Javascript
jQuery替换字符串(实例代码)
Nov 13 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
Nov 14 Javascript
深入理解JavaScript中的对象复制(Object Clone)
May 18 Javascript
js实现背景图自适应窗口大小
Jan 10 Javascript
JavaScript实现简单的星星评分效果
May 18 Javascript
vue 如何添加全局函数或全局变量以及单页面的title设置总结
Jun 01 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
Sep 18 Javascript
ES6中的迭代器、Generator函数及Generator函数的异步操作方法
May 12 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
Nov 12 Javascript
JavaScript Image对象实现原理实例解析
Aug 26 Javascript
浏览器JavaScript调试功能无法使用解决方案
Sep 18 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提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
php_screw 1.5:php加密: 安装与使用详解
2013/06/20 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
PHPstorm激活码2020年5月13日亲测有效
2020/09/17 PHP
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
Domino中运用jQuery读取视图内容的方法
2009/10/21 Javascript
javascript学习笔记(三)显示当时时间的代码
2011/04/08 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
基于Turn.js 实现翻书效果实例解析
2016/06/20 Javascript
基于Phantomjs生成PDF的实现方法
2016/11/07 Javascript
jQueryUI Sortable 应用Demo(分享)
2017/09/07 jQuery
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
解决vue.js 数据渲染成功仍报错的问题
2018/08/25 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
微信小程序云开发之云函数详解
2019/05/16 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
python抓取百度首页的方法
2015/05/19 Python
Python实现购物程序思路及代码
2017/07/24 Python
Python基于opencv的图像压缩算法实例分析
2018/05/03 Python
Python/Django后端使用PIL Image生成头像缩略图
2019/04/30 Python
使用Python轻松完成垃圾分类(基于图像识别)
2019/07/09 Python
python中dict使用方法详解
2019/07/17 Python
django修改models重建数据库的操作
2020/03/31 Python
CSS3动画之利用requestAnimationFrame触发重新播放功能
2019/09/11 HTML / CSS
台湾演唱会订票网站:StubHub台湾
2019/06/11 全球购物
SQL语言面试题
2013/08/27 面试题
请编程遍历页面上所有 TextBox 控件并给它赋值为 string.Empty
2015/12/03 面试题
总经理司机职责
2014/02/02 职场文书
五年级数学教学反思
2014/02/11 职场文书
书香校园活动方案
2014/02/28 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
2014年社区综治工作总结
2014/11/17 职场文书
门面租赁合同范文
2019/08/06 职场文书