用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 学习笔记 选择器之六
Jul 23 Javascript
映彩衣的js随笔(js图片切换效果)
Jul 31 Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
Dec 05 Javascript
Javascript浮点数乘积运算出现多位小数的解决方法
Feb 17 Javascript
JS实现弹性漂浮效果的广告代码
Sep 02 Javascript
jQuery选择器基础入门教程
May 10 Javascript
jQuery UI结合Ajax创建可定制的Web界面
Jun 22 Javascript
servlet+jquery实现文件上传进度条示例代码
Jan 25 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
Aug 29 jQuery
webpack4.0 入门实践教程
Oct 08 Javascript
vue + element-ui的分页问题实现
Dec 17 Javascript
vue实现跳转接口push 转场动画示例
Nov 01 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
生成缩略图
2006/10/09 PHP
PHP5新特性: 更加面向对象化的PHP
2006/11/18 PHP
php字符编码转换之gb2312转为utf8
2013/10/28 PHP
值得分享的php+ajax实时聊天室
2016/07/20 PHP
php设计模式之享元模式分析【星际争霸游戏案例】
2020/03/23 PHP
利用JQuery和JS实现奇偶行背景颜色自定义效果
2012/11/19 Javascript
JQuery的AJAX实现文件下载的小例子
2013/05/15 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
2013/12/17 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
node.js中的http.response.getHeader方法使用说明
2014/12/14 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
基于vue2.0+vuex+localStorage开发的本地记事本示例
2017/02/28 Javascript
ES6中异步对象Promise用法详解
2019/07/31 Javascript
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
[02:24]DOTA2亚洲邀请赛 NAVI战队出场宣传片
2015/02/07 DOTA
PyQt5实现拖放功能
2018/04/25 Python
Django在pycharm下修改默认启动端口的方法
2019/07/26 Python
python使用正则表达式(Regular Expression)方法超详细
2019/12/30 Python
对pytorch的函数中的group参数的作用介绍
2020/02/18 Python
python删除某个目录文件夹的方法
2020/05/26 Python
在keras 中获取张量 tensor 的维度大小实例
2020/06/10 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
2021/01/08 Python
如何让IE9以下版本(ie6/7/8)认识html5元素
2013/04/01 HTML / CSS
Weblogic和WebSphere不同特点
2012/05/09 面试题
行政助理求职自荐信
2013/10/26 职场文书
外贸英语专业求职信范文
2013/12/25 职场文书
家长给幼儿园的表扬信
2014/01/09 职场文书
2014旅游局领导班子四风问题对照检查材料思想汇报
2014/09/19 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
2015年反腐倡廉工作总结
2015/05/14 职场文书
2016年公务员六五普法心得体会
2016/01/21 职场文书
青年岗位能手事迹材料(2016推荐版)
2016/03/01 职场文书
Java SSM配置文件案例详解
2021/08/30 Java/Android
Mysql多层子查询示例代码(收藏夹案例)
2022/03/31 MySQL
了解Kubernetes中的Service和Endpoint
2022/04/01 Servers
Python matplotlib绘制条形统计图 处理多个实验多组观测值
2022/04/21 Python