vue中v-for通过动态绑定class实现触发效果


Posted in Javascript onDecember 06, 2018

vue动态绑定class练习。

class=“{ ‘类名1':条件表达式,‘类名2':条件表达式… }”

<template>
 <div class="app-*">
  <ul>
   <li
    v-for="(item,i) of list"
    :key="i"
    class="item"
    @click="clickIndex=i"
    :class="{'click':i==clickIndex}"
   ></li>
  </ul>
 </div>
</template>

<script>
export default {
 data() {
  return {
   list: [1, 2, 3, 4],
   clickIndex: -1
  };
 },
 methods: {}
};
</script>
<style scoped>
.item {
 display: inline-block;
 width: 100px;
 height: 100px;
 cursor: pointer;
 border: 1px solid black;
}
.item:hover {
 background: gray;
}
.item.click {
 background: red;
}
</style>

补充:vue之v-for中给每个item动态绑定class,动态添加元素,动态删除某个元素的实现

主要解决了在v-for时,如何给每个item添加动态的样式,即是说,鼠标滑动到某一项时,可以单独改变某一项的样式,同时添加按钮等操作。以及删除某一项的操作。

<template>
 <div class="hello">
   <ul>
     <li  v-for="(item, itemIndex) in test" 
        :key="item.id" 
        :class="{defaultClass: itemIndex === isActive}"
        @mouseenter="onMouseEnter(itemIndex)" 
        @mouseleave="onMouseLeave">
       {{ itemIndex+1 }} :{{ item.title }}
       <button v-if="isActive === itemIndex" @click="deleteItem(itemIndex)">删除({{itemIndex+1}})</button>
     </li>
   </ul>
 </div>
</template>
<script>
export default {
 name: 'HelloWorld',
 data () {
  return {
   test: [
     {   
       id: 1,
       title: 'title first'
     },
     {
       id: 2,
       title: 'title second'
     },
     {
       id: 3,
       title: 'title third'
     }
   ],
   isActive: ''
  }
 },
 methods: {
   onMouseEnter(index) {
     this.isActive = index
   },
   onMouseLeave() {
     this.isActive = ''
   },
   deleteItem(index) {
     this.test.splice(index, 1)
   }
 },
 computed: {
   
 }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1, h2 {
 font-weight: normal;
}
ul {
 list-style-type: none;
 padding: 0;
}
li {
 /* display: inline-block; */
 margin:10px;
}
a {
 color: #42b983;
}
.defaultClass{
  background-color: red;
}
</style>

总结

以上所述是小编给大家介绍的vue中v-for通过动态绑定class实现触发效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Javascript实现的Map集合工具类完整实例
Jul 31 Javascript
javascript中的正则表达式使用详解
Aug 30 Javascript
使用Jasmine和Karma对AngularJS页面程序进行测试
Mar 05 Javascript
jQuery实现的导航下拉菜单效果
Jul 04 Javascript
使用Node.js实现ORM的一种思路详解(图文)
Oct 24 Javascript
vue better-scroll插件使用详解
Jan 25 Javascript
4个顶级JavaScript高级文本编辑器
Oct 10 Javascript
vue页面更新patch的实现示例
Mar 25 Javascript
vue实现简单图片上传
Jun 30 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
Jul 24 Javascript
vue动态设置页面title的方法实例
Aug 23 Javascript
关于angular 8.1使用过程中的一些记录
Nov 25 Javascript
vue通过指令(directives)实现点击空白处收起下拉框
Dec 06 #Javascript
Vue-CLI3.x 设置反向代理的方法
Dec 06 #Javascript
JavaScript中引用vs复制示例详析
Dec 06 #Javascript
使用jQuery动态设置单选框的选中效果
Dec 06 #jQuery
express+vue+mongodb+session 实现注册登录功能
Dec 06 #Javascript
如何使用puppet替换文件中的string
Dec 06 #Javascript
详解vantUI框架在vue项目中的应用踩坑
Dec 06 #Javascript
You might like
PHP 如何利用phpexcel导入数据库
2013/08/24 PHP
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
javascript 动态参数判空操作
2008/12/22 Javascript
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
2009/12/28 Javascript
JavaScript学习笔记(十)
2010/01/17 Javascript
js使下拉列表框可编辑不止是选择
2013/12/12 Javascript
jQuery动态添加、删除元素的方法
2014/01/09 Javascript
Javascript 绘制 sin 曲线过程附图
2014/08/21 Javascript
下拉框select的绑定示例
2014/09/04 Javascript
浅谈NodeJS中require路径问题
2015/05/07 NodeJs
nodeJs爬虫获取数据简单实现代码
2016/03/29 NodeJs
AngularJS动态生成div的ID源码解析
2016/08/29 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
2019/12/17 Javascript
[00:14]护身甲盾
2019/03/06 DOTA
Python实现的Kmeans++算法实例
2014/04/26 Python
Python查找两个有序列表中位数的方法【基于归并算法】
2018/04/20 Python
Python实现多属性排序的方法
2018/12/05 Python
python实现文件的备份流程详解
2019/06/18 Python
Django ORM 常用字段与不常用字段汇总
2019/08/09 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
使用IPython或Spyder将省略号表示的内容完整输出
2020/04/20 Python
Python爬虫与反爬虫大战
2020/07/30 Python
Pycharm编辑器功能之代码折叠效果的实现代码
2020/10/15 Python
python 实现ping测试延迟的两种方法
2020/12/10 Python
python实现简单的学生管理系统
2021/02/22 Python
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
全球500多个机场的接送服务:Suntransfers
2019/06/03 全球购物
改进作风怎么办发言材料
2014/08/17 职场文书
工人先进事迹材料
2014/12/26 职场文书
新闻简讯格式及范文
2015/07/22 职场文书
PyTorch dropout设置训练和测试模式的实现
2021/05/27 Python
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python
Vite + React从零开始搭建一个开源组件库
2022/06/25 Javascript