用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 相关文章推荐
window.ActiveXObject使用说明
Nov 08 Javascript
jquery.tmpl JQuery模板插件
Oct 10 Javascript
jQuery事件绑定.on()简要概述及应用
Feb 07 Javascript
Javascript学习笔记之数组的构造函数
Nov 23 Javascript
PageSwitch插件实现100种不同图片切换效果
Jul 28 Javascript
jQuery遍历json的方法(推荐)
Jun 12 Javascript
Vue.js开发环境搭建
Nov 10 Javascript
js实现1,2,3,5数字按照概率生成
Sep 12 Javascript
基于vue cli重构多页面脚手架过程详解
Jan 23 Javascript
vue多页面开发和打包正确处理方法
Apr 20 Javascript
JS寄快递地址智能解析的实现代码
Jul 16 Javascript
Vue filter 过滤器、以及在table中的使用介绍
Sep 07 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
完美实现GIF动画缩略图的php代码
2011/01/02 PHP
用PHP书写安全的脚本代码
2012/02/05 PHP
深入浅析PHP的session反序列化漏洞问题
2017/06/15 PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
2019/05/13 PHP
Laravel如何实现自动加载类
2019/10/14 PHP
HTML5如何适配 iPhone IOS 底部黑条
2021/03/09 HTML / CSS
如何实现JS函数的重载
2006/09/22 Javascript
JQuery jsonp 使用示例代码
2009/08/12 Javascript
直接拿来用的页面跳转进度条JS实现
2016/01/06 Javascript
JavaScript事件处理的方式(三种)
2016/04/26 Javascript
ThinkJS中如何使用MongoDB的CURD操作
2016/12/13 Javascript
JavaScript中引用vs复制示例详析
2018/12/06 Javascript
ES6入门教程之let、const的使用方法
2019/04/13 Javascript
JS实现checkbox互斥(单选)功能示例
2019/05/04 Javascript
vue柱状进度条图像的完美实现方案
2019/08/26 Javascript
微信小程序实现滑动翻页效果(完整代码)
2019/12/06 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
pytorch中的embedding词向量的使用方法
2019/08/18 Python
Django之PopUp的具体实现方法
2019/08/31 Python
Python pip使用超时问题解决方案
2020/08/03 Python
Bally巴利英国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/07 全球购物
Europcar澳大利亚官网:全球汽车租赁领域的领导者
2019/03/24 全球购物
制衣厂各岗位职责
2013/12/02 职场文书
会计专业自荐信
2014/06/03 职场文书
超市优秀员工获奖感言
2014/08/15 职场文书
小学生运动会报道稿
2014/09/12 职场文书
警示教育观后感
2015/06/17 职场文书
员工担保书范本
2015/09/22 职场文书
复制别人的成功真的会成功吗?
2019/10/17 职场文书
CSS中em的正确打开方式详解
2021/04/08 HTML / CSS
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python