用vue2.0实现点击选中active其他选项互斥的效果


Posted in Javascript onApril 12, 2018

在正常的js中。我们如果要实现点击选中active然后其他取消的效果,我们可以定义一个类,当点击的时候给给多有的dom取消active的类,给当前元素加上这个类名,说的很??拢?苯永纯创?胨祷鞍桑ū硎韭ブ饔玫氖?q):

<style>
  * {
   margin: 0;
   padding: 0;
  }

  li {
   list-style: none;
   width: 100px;
   margin-top: 10px;
   border: 1px solid red;
  }

  li:active {
   cursor: pointer;
  }

  .active {
   background-color: aqua;
  }
 </style>
 <script src="http://g.ydbcdn.com/jquery/latest/jquery.min.js"></script>
</head>
<body>
<ul>
 <li>this is pne</li>
 <li>this is two</li>
 <li>this is three</li>
</ul>
</body>
<script>
 $(() => {
  $("li").click((e) => {
   $("li").removeClass("active");
   $(e.target).addClass("active");
  })
 })
</script>

效果如下图所示:

用vue2.0实现点击选中active其他选项互斥的效果

但是在vue里面,是不提倡进行dom操作的,如果非进行dom的话,vue2.0里面有一个ref的属性,是可以达到dom的效果的。那么接下来我们不接住dom来进行操作:

由于习惯了webpack和vue-cli脚手架,所以楼主所有vue的代码都是放在webpack的脚手架当中进行,还使用了pug和scss的预处理器,vue的代码如下:

<template lang="pug">
 ul
  li(v-for="(item,index) in classArr", @click="result(index)", :class="resultNum === index?'active':''") this is {{item}}
</template>
<style lang="scss">
 li {
  list-style: none;
  width: 100px;
  margin-top: 10px;
  border: 1px solid red;
  &:hover {
   cursor: pointer;
  }
 }
 .active{
  background-color: aqua;
 }
</style>
<script>
 export default{
  data(){
   return {
    classArr: ["one", "two", "three"],
    num:"",
   }
  },
  methods: {
    result(index){
     this.num = index;
    }
  },
  computed:{
    resultNum(){
     return this.num;
   }
  }
 }
</script>

思路如下:

这段代码使用的是index这个关键字,还使用了computed这个计算属性,当当前的index索引与点击的当前元素的下标相同的时候,便会触发active这个类名。说的很简练,不懂的可以加博主一起探讨

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery表单验证框架提供的身份证验证方法(示例代码)
Dec 27 Javascript
javascript单例模式的简单实现方法
Jul 25 Javascript
一步步教大家编写酷炫的导航栏js+css实现
Mar 14 Javascript
js实现的简单图片浮动效果完整实例
May 10 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
May 26 Javascript
angularJS+requireJS实现controller及directive的按需加载示例
Feb 20 Javascript
footer定位页面底部(代码分享)
Mar 07 Javascript
vue-cli项目中使用echarts图表实例
Oct 22 Javascript
React通过redux-persist持久化数据存储的方法示例
Feb 14 Javascript
解决layer.msg 不居中 ifram中的问题
Sep 05 Javascript
基于JavaScript实现表格隔行换色
May 08 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
Oct 27 Javascript
vue组件的写法汇总
Apr 12 #Javascript
jQuery实现文件编码成base64并通过AJAX上传的方法
Apr 12 #jQuery
基于vue-simplemde实现图片拖拽、粘贴功能
Apr 12 #Javascript
基于angular6.0实现的一个组件懒加载功能示例
Apr 12 #Javascript
JavaScript实现简单的文本逐字打印效果示例
Apr 12 #Javascript
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
Apr 12 #jQuery
Koa项目搭建过程详细记录
Apr 12 #Javascript
You might like
论建造顺序的重要性
2020/03/04 星际争霸
php操纵mysqli数据库的实现方法
2016/09/18 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
2010/03/17 Javascript
JavaScript 异步方法队列链实现代码分析
2010/06/05 Javascript
Jquery从头学起第四讲 jquery入门教程
2010/08/01 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
js鼠标滑过图片震动特效的方法
2015/02/17 Javascript
canvas绘制一个常用的emoji表情
2017/03/30 Javascript
React Native开发封装Toast与加载Loading组件示例
2018/09/08 Javascript
详解如何使用koa实现socket.io官网的例子
2018/11/04 Javascript
vue+iview 兼容IE11浏览器的实现方法
2019/01/07 Javascript
spring+angular实现导出excel的实现代码
2019/02/27 Javascript
浅谈Angular单元测试总结
2019/03/22 Javascript
js实现掷骰子小游戏
2019/10/24 Javascript
vue实现分页的三种效果
2020/06/23 Javascript
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
用python实现的可以拷贝或剪切一个文件列表中的所有文件
2009/04/30 Python
Python 爬虫模拟登陆知乎
2016/09/23 Python
Python基于property实现类的特性操作示例
2018/06/15 Python
Python将一个Excel拆分为多个Excel
2018/11/07 Python
用python求一个数组的和与平均值的实现方法
2019/06/29 Python
CSS3制作皮卡丘动画壁纸的示例
2020/11/02 HTML / CSS
Bobbi Brown芭比波朗美国官网:化妆师专业彩妆保养品品牌
2016/08/18 全球购物
美国受欢迎的女性牛仔裤品牌:DL1961
2016/11/12 全球购物
英国领先的亚洲旅游专家:Wendy Wu Tours
2018/01/21 全球购物
颇特女士香港官网:NET-A-PORTER香港
2021/03/08 全球购物
中间件分为哪几类
2012/03/14 面试题
群众路线剖析材料
2014/02/02 职场文书
企业文化理念标语
2014/06/10 职场文书
2017新年晚会开幕词
2016/03/03 职场文书
详解RedisTemplate下Redis分布式锁引发的系列问题
2021/04/27 Redis
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫