用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.elementGetStyle(element, style)应用示例
Sep 24 Javascript
JavaScript Function函数类型介绍
Apr 08 Javascript
jQuery判断多个input file 都不能为空的例子
Jun 23 Javascript
Jquery实现纵向横向菜单
Jan 24 Javascript
jquery validation验证表单插件
Jan 07 Javascript
JavaScript面试出现频繁的一些易错点整理
Mar 29 Javascript
微信公众平台 发送模板消息(Java接口开发)
Apr 17 Javascript
微信小程序搭建自己的Https服务器
May 02 Javascript
微信小程序 轮播图实现原理及优化详解
Sep 29 Javascript
file-loader打包图片文件时路径错误输出为[object-module]的解决方法
Jan 03 Javascript
JQuery省市联动效果实现过程详解
May 08 jQuery
详解javascript void(0)
Jul 13 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
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
用文本文件制作留言板提示(上)
2006/10/09 PHP
PHP个人网站架设连环讲(一)
2006/10/09 PHP
PHP5常用函数列表(分享)
2013/06/07 PHP
thinkphp在模型中自动完成session赋值示例代码
2014/09/09 PHP
PHP基于swoole多进程操作示例
2019/08/12 PHP
任意位置显示html菜单
2007/02/01 Javascript
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
jquery属性过滤选择器使用示例
2013/06/18 Javascript
使用CSS样式position:fixed水平滚动的方法
2014/02/19 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
jQuery插件dataTables添加序号列的方法
2016/07/06 Javascript
Bootstrap入门教程一Hello Bootstrap初识
2017/03/02 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
2017/04/24 Javascript
vue+iview写个弹框的示例代码
2017/12/05 Javascript
nodejs发送http请求时遇到404长时间未响应的解决方法
2017/12/10 NodeJs
JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】
2018/05/07 Javascript
Vue多系统切换实现方案
2018/06/05 Javascript
浅谈vue方法内的方法使用this的问题
2018/09/15 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
node.js如何操作MySQL数据库
2020/10/29 Javascript
利用Python自动监控网站并发送邮件告警的方法
2016/08/24 Python
python pandas消除空值和空格以及 Nan数据替换方法
2018/10/30 Python
Python3模拟登录操作实例分析
2019/03/12 Python
Python实现打印实心和空心菱形
2019/11/23 Python
SmartBuyGlasses美国官网:太阳眼镜和眼镜
2017/08/20 全球购物
什么叫做SQL注入,如何防止
2016/10/04 面试题
药学专业大学生自荐信
2013/09/28 职场文书
试用期员工考核制度
2014/01/22 职场文书
个人简历中自我评价
2014/02/11 职场文书
工程质量承诺书
2014/03/27 职场文书
高中升旗仪式演讲稿
2014/09/09 职场文书
深入开展党的群众路线教育实践活动心得体会
2014/11/05 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书
【DOTA2】高能暴走TK秀!PSG LGD vs ASTER - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA