用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取子节点及当前节点属性值的方法
Sep 09 Javascript
js控制文本框只输入数字和小数点的方法
Mar 10 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
Sep 27 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
Jun 22 Javascript
Angularjs---项目搭建图文教程
Jul 08 Javascript
Highcharts学习之数据列
Aug 03 Javascript
js实现简单的网页换肤效果
Jan 18 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
Mar 07 Javascript
JavaScript简单计算人的年龄示例
Apr 15 Javascript
vue 粒子特效的示例代码
Sep 19 Javascript
vue实现登录拦截
Jun 29 Javascript
js 函数性能比较方法
Aug 24 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
PHP动态变静态原理
2006/11/25 PHP
php通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
php解析url的三个示例
2014/01/20 PHP
ThinkPHP字符串函数及常用函数汇总
2014/07/18 PHP
php使用cookie显示用户上次访问网站日期的方法
2015/01/26 PHP
PHP统计数值数组中出现频率最多的10个数字的方法
2015/04/20 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
2016/09/11 PHP
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
完美解决IE低版本不支持call与apply的问题
2013/12/05 Javascript
Nodejs极简入门教程(三):进程
2014/10/27 NodeJs
jquery实现向下滑出的二级导航下滑菜单效果
2015/08/25 Javascript
js实现跨域的4种实用方法原理分析
2015/10/29 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
2016/10/31 Javascript
jQuery鼠标悬停内容动画切换效果
2017/04/27 jQuery
Vue实现双向数据绑定
2017/05/03 Javascript
jQuery实现拼图小游戏(实例讲解)
2017/07/24 jQuery
cordova入门基础教程及使用中遇到的一些问题总结
2017/11/14 Javascript
vue ssr服务端渲染(小白解惑)
2019/11/10 Javascript
微信小程序接入腾讯云验证码的方法步骤
2020/01/07 Javascript
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
python正则表达式匹配不包含某几个字符的字符串方法
2019/07/23 Python
python连接打印机实现打印文档、图片、pdf文件等功能
2020/02/07 Python
Python 读取有公式cell的结果内容实例方法
2020/02/17 Python
基于HTML5超酷摄像头(HTML5 webcam)拍照功能实现代码
2012/12/13 HTML / CSS
HTML5 input新增type属性color颜色拾取器的实例代码
2018/08/27 HTML / CSS
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
雷蛇美国官网:Razer
2020/04/03 全球购物
意大利时尚奢侈品店:D’Aniello Boutique
2021/01/19 全球购物
什么情况下你必须要把一个类定义为abstract的
2013/01/06 面试题
职业生涯规划书范文
2014/03/10 职场文书
美丽乡村建设实施方案
2014/03/23 职场文书
安全生产知识竞赛活动总结
2014/07/07 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
教师节寄语2015
2015/03/23 职场文书
2015年公务员试用期工作总结
2015/05/28 职场文书