用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 相关文章推荐
轻轻松松学JS调试(不下载任何工具)
Apr 14 Javascript
js indexOf()定义和用法
Oct 21 Javascript
jQuery $.each遍历对象、数组用法实例
Apr 16 Javascript
js实现的后台左侧管理菜单代码
Sep 11 Javascript
jQuery 移动端artEditor富文本编辑器
Jan 11 Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
Jan 04 Javascript
浅谈vue引入css,less遇到的坑和解决方法
Jan 20 Javascript
深入理解JavaScript 中的匿名函数((function() {})();)与变量的作用域
Aug 28 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
Nov 24 Javascript
JavaScript Tab菜单实现过程解析
May 13 Javascript
浅析JavaScript 函数防抖和节流
Jul 13 Javascript
原生JavaScript实现五子棋游戏
Nov 09 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
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
PHP框架Swoole定时器Timer特性分析
2014/08/19 PHP
php将html转成wml的WAP标记语言实例
2015/07/08 PHP
php实现分页显示
2015/11/03 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
2017/11/06 PHP
用js实现trim()的解决办法
2013/04/16 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
jQuery实现的倒计时效果实例小结
2016/04/16 Javascript
全面总结Javascript对数组对象的各种操作
2017/01/22 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
微信小程序实现长按删除图片的示例
2018/05/18 Javascript
Vue双向绑定实现原理与方法详解
2020/05/07 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
ESLint 是如何检查 .vue 文件的
2020/11/30 Vue.js
Python urlopen 使用小示例
2008/09/06 Python
查看Django和flask版本的方法
2018/05/14 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
使用NumPy和pandas对CSV文件进行写操作的实例
2018/06/14 Python
python实现归并排序算法
2018/11/22 Python
将python2.7添加进64位系统的注册表方式
2019/11/20 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
20佳惊艳的HTML5应用程序示例分享
2011/05/03 HTML / CSS
MyFrenchPharma中文网:最大的法国药妆平台
2016/10/07 全球购物
美国婴童服装市场上的领先品牌:Carter’s
2018/02/08 全球购物
2014年信访维稳工作总结
2014/12/08 职场文书
2015年七一建党节活动总结
2015/03/20 职场文书
本科毕业论文答辩稿
2015/06/23 职场文书
思想工作总结范文
2015/08/12 职场文书
纪检部部长竞选稿
2015/11/21 职场文书
保险公司增员口号
2015/12/25 职场文书
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis
Flask使用SQLAlchemy实现持久化数据
2021/07/16 Python