用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自执行函数之伪命名空间封装法
Dec 25 Javascript
JavaScript AJAX之惰性载入函数
Aug 27 Javascript
js的toUpperCase方法用法实例
Jan 27 Javascript
javascript每日必学之运算符
Feb 16 Javascript
基于javascript制作微博发布栏效果
Apr 04 Javascript
AngularJS入门教程之AngularJS模型
Apr 18 Javascript
微信小程序使用progress组件实现显示进度功能【附源码下载】
Dec 12 Javascript
Node.js Buffer用法解读
May 18 Javascript
微信小程序实现自上而下字幕滚动
Jul 14 Javascript
webpack4.x开发环境配置详解
Aug 04 Javascript
浅谈Express.js解析Post数据类型的正确姿势
May 30 Javascript
JavaScript监听触摸事件代码实例
Dec 30 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聊天室技术
2006/10/09 PHP
php模拟post行为代码总结(POST方式不是绝对安全)
2012/02/22 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
2016/07/13 PHP
jQuery:节点(插入,复制,替换,删除)操作
2013/03/04 Javascript
Jquery实现侧边栏跟随滚动条固定(兼容IE6)
2014/04/02 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
vue 使用Jade模板写html,stylus写css的方法
2018/02/23 Javascript
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
2018/08/19 Javascript
node.js ws模块搭建websocket服务端的方法示例
2019/04/25 Javascript
webpack结合express实现自动刷新的方法
2019/05/07 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
2019/09/18 Javascript
vue通过v-html指令渲染的富文本无法修改样式的解决方案
2020/05/20 Javascript
[47:02]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS paiN
2018/03/30 DOTA
python网络编程之数据传输UDP实例分析
2015/05/20 Python
Python标准库之Sys模块使用详解
2015/05/23 Python
Python制作简易注册登录系统
2016/12/15 Python
Python3如何解决字符编码问题详解
2017/04/23 Python
判断python字典中key是否存在的两种方法
2018/08/10 Python
Python搭建HTTP服务过程图解
2019/12/14 Python
python已协程方式处理任务实现过程
2019/12/27 Python
Html5游戏开发之乒乓Ping Pong游戏示例(一)
2013/01/21 HTML / CSS
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
小学教师自我鉴定范文
2014/03/20 职场文书
横幅标语大全
2014/06/17 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
2014年人民警察入党思想汇报
2014/10/12 职场文书
2014年煤矿工人工作总结
2014/12/08 职场文书
教师个人事迹材料
2014/12/17 职场文书
教师先进个人材料
2014/12/17 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
表扬信范文
2015/05/04 职场文书
2015年关爱留守儿童工作总结
2015/05/22 职场文书
小学教代会开幕词
2016/03/04 职场文书
php引用传递
2021/04/01 PHP
Python实现8种常用抽样方法
2021/06/27 Python