用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实现简单的datagrid数据表格
Jan 02 Javascript
jQuery实现切换页面过渡动画效果
Oct 29 Javascript
jquery淡入淡出效果简单实例
Jan 14 Javascript
jquery.validate 自定义验证方法及validate相关参数
Jan 18 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
Mar 05 Javascript
BooStrap对导航条的改造实践小结
Sep 21 Javascript
Java与JavaScript中判断两字符串是否相等的区别
Mar 13 Javascript
关于Node.js中Buffer的一些你可能不知道的用法
Mar 28 Javascript
Vue修改mint-ui默认样式的方法
Feb 03 Javascript
VUE实现可随意拖动的弹窗组件
Sep 25 Javascript
Next.js实现react服务器端渲染的方法示例
Jan 06 Javascript
Js图片点击切换轮播实现代码
Jul 27 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之PHP语法学习笔记1
2006/12/17 PHP
Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
2010/08/27 Javascript
浅析Js中的单引号与双引号问题
2013/11/06 Javascript
javascript实现验证IP地址等相关信息代码
2015/05/10 Javascript
js实现TAB切换对应不同颜色的代码
2015/08/31 Javascript
用js制作淘宝放大镜效果
2020/10/28 Javascript
微信小程序 实例开发总结
2017/04/26 Javascript
zTree节点文字过多的处理方法
2017/11/24 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
基于Node的Axure文件在线预览的实现代码
2019/08/28 Javascript
vue-next/runtime-core 源码阅读指南详解
2019/10/25 Javascript
js实现从右往左匀速显示图片(无缝轮播)
2020/06/29 Javascript
vue+elementUI(el-upload)图片压缩,默认同比例压缩操作
2020/08/10 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
2020/10/27 Javascript
Python中的Matplotlib模块入门教程
2015/04/15 Python
Python编程中对文件和存储器的读写示例
2016/01/25 Python
python获取指定字符串中重复模式最高的字符串方法
2018/06/29 Python
Django 开发调试工具 Django-debug-toolbar使用详解
2019/07/23 Python
Python字符串格式化输出代码实例
2019/11/22 Python
Python基础之变量基本用法与进阶详解
2020/01/03 Python
Python实现ElGamal加密算法的示例代码
2020/06/19 Python
matplotlib对象拾取事件处理的实现
2021/01/14 Python
Matplotlib animation模块实现动态图
2021/02/25 Python
节省高达65%的城市景点费用:Go City
2019/07/06 全球购物
会走路的树教学反思
2014/02/20 职场文书
《放小鸟》教学反思
2014/04/20 职场文书
员工工作能力评语
2014/12/31 职场文书
2015年党支部公开承诺书
2015/01/22 职场文书
2015年入党决心书
2015/02/05 职场文书
销售助理岗位职责
2015/02/11 职场文书
中学生逃课检讨书
2015/02/17 职场文书
尼克胡哲观后感
2015/06/08 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书
JVM钩子函数的使用场景详解
2021/08/23 Java/Android
基于Python实现nc批量转tif格式
2022/08/14 Python