用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 相关文章推荐
可实现多表单提交的javascript函数
Aug 01 Javascript
带左右箭头图片轮播的JS代码
Dec 18 Javascript
jQuery实现contains方法不区分大小写的方法
Feb 13 Javascript
Javascript类型转换的规则实例解析
Feb 23 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
Aug 04 Javascript
微信小程序  简单实例(阅读器)的实例开发
Sep 29 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
Mar 09 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
Jun 09 jQuery
Vue中的无限加载vue-infinite-loading的方法
Apr 08 Javascript
JS 实现分页打印功能
May 16 Javascript
javascript使用substring实现的展开与收缩文字功能示例
Jun 17 Javascript
Vue路由的模块自动化与统一加载实现
Jun 05 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
使用 MySQL Date/Time 类型
2008/03/26 PHP
PHP递归调用的小技巧讲解
2013/02/19 PHP
解析posix与perl标准的正则表达式区别
2013/06/17 PHP
PHP把数字转成人民币大写的函数分享
2014/06/30 PHP
PHP 5.3新增魔术方法__invoke概述
2014/07/23 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
2014/11/20 PHP
php实现计数器方法小结
2015/01/05 PHP
phpQuery让php处理html代码像jQuery一样方便
2015/01/06 PHP
[原创]站长必须要知道的javascript广告代码
2007/05/30 Javascript
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
jQuery timers计时器简单应用说明
2010/10/28 Javascript
javascript学习笔记(十九) 节点的操作实现代码
2012/06/20 Javascript
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
jQuery超精致图片轮播幻灯片特效代码分享
2015/09/10 Javascript
Backbone.js框架中Model与Collection的使用实例
2016/05/07 Javascript
AngularJS 遇到的小坑与技巧小结
2016/06/07 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
微信小程序之 catalog 切换实现解析
2019/09/12 Javascript
JS简单表单验证功能完整示例
2020/01/26 Javascript
详解python中的json和字典dict
2018/06/22 Python
浅谈python连续赋值可能引发的错误
2018/11/10 Python
python根据多个文件名批量查找文件
2019/08/13 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
Python高级编程之继承问题详解(super与mro)
2019/11/19 Python
Python ini文件常用操作方法解析
2020/04/26 Python
Python函数__new__及__init__作用及区别解析
2020/08/31 Python
小结Python的反射机制
2020/09/28 Python
python 装饰器的基本使用
2021/01/13 Python
纯CSS3实现鼠标滑过按钮动画第二节
2020/07/16 HTML / CSS
OnePlus加拿大官网:中国国际化手机品牌
2020/10/13 全球购物
大专毕业生简历的自我评价
2013/10/20 职场文书
学前班教师的自我鉴定
2013/12/05 职场文书
高中生学期学习自我评价
2014/02/24 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
政协委员个人总结
2015/03/03 职场文书
关于mysql中string和number的转换问题
2022/06/14 MySQL