用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 对话框和状态栏使用说明
Oct 25 Javascript
跨浏览器的事件对象介绍
Jun 27 Javascript
js获取客户端外网ip的简单实例
Nov 21 Javascript
使用ajaxfileupload.js实现ajax上传文件php版
Jun 26 Javascript
javascript实现图片自动和可控的轮播切换特效
Apr 13 Javascript
jquery实现网页的页面平滑滚动效果代码
Nov 02 Javascript
Bootstrap每天必学之js插件
Nov 30 Javascript
基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
May 12 Javascript
深入理解JavaScript单体内置对象
Jun 06 Javascript
微信小程序 WXDropDownMenu组件详解及实例代码
Oct 24 Javascript
iview实现select tree树形下拉框的示例代码
Dec 21 Javascript
JavaScript canvas实现文字时钟
Jan 10 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
php 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
phpStudy 2016 使用教程详解(支持PHP7)
2017/10/18 PHP
在 IE 中调用 javascript 打开 Excel 表
2006/12/21 Javascript
YUI 读码日记之 YAHOO.util.Dom - Part.1
2008/03/22 Javascript
javascript 鼠标滚轮事件
2009/04/09 Javascript
Json字符串转换为JS对象的高效方法实例
2013/05/01 Javascript
JavaScript:new 一个函数和直接调用函数的区别分析
2013/07/10 Javascript
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
JavaScript脚本判断蜘蛛来源的方法
2015/09/22 Javascript
javascript+css3 实现动态按钮菜单特效
2016/02/06 Javascript
基于JS实现的随机数字抽签实例
2016/12/08 Javascript
JS区分Object与Aarry的六种方法总结
2017/02/27 Javascript
select自定义小三角样式代码(实用总结)
2017/08/18 Javascript
深入浅析javascript继承体系
2017/10/23 Javascript
详解js中Array的方法及技巧
2018/09/12 Javascript
面试题:react和vue的区别分析
2019/04/08 Javascript
vue过滤器实现日期格式化的案例分析
2020/07/02 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
JavaScript 异步时序问题
2020/11/20 Javascript
python中常用检测字符串相关函数汇总
2015/04/15 Python
python3实现名片管理系统
2020/11/29 Python
python3.6 tkinter实现屏保小程序
2019/07/30 Python
python分布式计算dispy的使用详解
2019/12/22 Python
python实现IOU计算案例
2020/04/12 Python
Python super()函数使用及多重继承
2020/05/06 Python
Keras官方中文文档:性能评估Metrices详解
2020/06/15 Python
python Paramiko使用示例
2020/09/21 Python
python使用re模块爬取豆瓣Top250电影
2020/10/20 Python
Python hashlib和hmac模块使用方法解析
2020/12/08 Python
使用HTML5 Canvas API控制字体的显示与渲染的方法
2016/03/24 HTML / CSS
Raleigh兰令自行车美国官网:英国凤头牌自行车
2018/01/08 全球购物
爱尔兰电脑、家电和家具购物网站:Buy It Direct
2019/07/09 全球购物
我的动漫时代的创业计划书范文
2014/01/27 职场文书
自我评价的范文
2014/02/02 职场文书
大学优秀班主任事迹材料
2014/05/02 职场文书
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js