用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 相关文章推荐
namespace.js Javascript的命名空间库
Oct 11 Javascript
改变状态栏文字的js代码
Jun 13 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
Mar 01 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
Jul 08 Javascript
Bootstrap Table表格一直加载(load)不了数据的快速解决方法
Sep 17 Javascript
微信小程序 自己制作小组件实例详解
Dec 22 Javascript
详解Jquery 遍历数组之$().each方法与$.each()方法介绍
Jan 09 Javascript
JavaScript正则替换HTML标签功能示例
Mar 02 Javascript
关于jquery form表单序列化的注意事项详解
Aug 01 jQuery
angularjs实现时间轴效果的示例代码
Nov 29 Javascript
原生JS实现瀑布流插件
Feb 06 Javascript
Vue如何循环提取对象数组中的值
Nov 18 Vue.js
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错误提示的关闭方法详解
2013/06/23 PHP
JS控件autocomplete 0.11演示及下载 1月5日已更新
2007/01/09 Javascript
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
把html页面的部分内容保存成新的html文件的jquery代码
2009/11/12 Javascript
JavaScript基本编码模式小结
2012/05/23 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
Javascript delete 引用类型对象
2013/11/01 Javascript
js中substring和substr两者区别和使用方法
2015/11/09 Javascript
给easyui datebox扩展一个清空的实例
2016/11/09 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
Vue-resource实现ajax请求和跨域请求示例
2017/02/23 Javascript
Vue.js中兄弟组件之间互相传值实例
2017/06/01 Javascript
Js自定义多选框效果的实例代码
2017/07/05 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
微信小程序实现折叠展开效果
2018/07/19 Javascript
vue-cli 使用vue-bus来全局控制的实例讲解
2018/09/15 Javascript
详解解决小程序中webview页面多层history返回问题
2019/08/20 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
[49:17]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第三场 1月26日
2021/03/11 DOTA
Python的Urllib库的基本使用教程
2015/04/30 Python
python网络编程之文件下载实例分析
2015/05/20 Python
pyhton列表转换为数组的实例
2018/04/04 Python
Python向excel中写入数据的方法
2019/05/05 Python
用Python实现将一张图片分成9宫格的示例
2019/07/05 Python
Python3实现mysql连接和数据框的形成(实例代码)
2020/01/17 Python
使用celery和Django处理异步任务的流程分析
2020/02/19 Python
css3实现六边形边框的实例代码
2019/05/24 HTML / CSS
Interhome丹麦:在线预订度假屋和公寓
2019/07/18 全球购物
开朗女孩的自我评价
2014/02/10 职场文书
2014年预备党员学习两会心得体会
2014/03/17 职场文书
珍爱生命演讲稿
2014/05/10 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
个人作风建设自查报告
2014/10/22 职场文书
预备党员考察意见范文
2015/06/01 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
java实现面板之间切换功能
2022/06/10 Java/Android