用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教程
Jun 09 Javascript
javascript实现的在当前窗口中漂浮框的代码
Mar 15 Javascript
Node.js实战 建立简单的Web服务器
Mar 08 Javascript
javascript字符串替换及字符串分割示例代码
Dec 12 Javascript
jquery zTree异步加载简单实例讲解
Feb 25 Javascript
javascript创建含数字字母的随机字符串方法总结
Aug 01 Javascript
详细讲解vue2+vuex+axios
May 27 Javascript
js原生实现移动端手指滑动轮播图效果的示例
Jan 02 Javascript
深入理解JavaScript 中的匿名函数((function() {})();)与变量的作用域
Aug 28 Javascript
实例讲解JavaScript预编译流程
Jan 24 Javascript
微信小程序 简易计算器实现代码实例
Sep 02 Javascript
使用layer模态框给新页面传值的方法
Sep 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
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
PHP脚本的10个技巧(3)
2006/10/09 PHP
从php核心代码分析require和include的区别
2011/01/02 PHP
8个出色的WordPress SEO插件收集
2011/02/26 PHP
PHP内置过滤器FILTER使用实例
2014/06/25 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
2014/11/24 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
Js之软键盘实现(js源码)
2007/01/30 Javascript
firefox事件处理之自动查找event的函数(用于onclick=foo())
2010/08/05 Javascript
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
javascript面向对象之定义成员方法实例分析
2015/01/13 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
2016/05/28 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
2017/02/08 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
2017/03/04 Javascript
Node.js readline模块与util模块的使用
2018/03/01 Javascript
JavaScript 下载svg图片为png格式
2018/06/21 Javascript
React中如何引入Angular组件详解
2018/08/09 Javascript
15分钟深入了解JS继承分类、原理与用法
2019/01/19 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
详解使用WebPack搭建React开发环境
2019/08/06 Javascript
vue 实现模糊检索并根据其他字符的首字母顺序排列
2019/09/19 Javascript
Vue实现计算器计算效果
2020/08/17 Javascript
Python处理CSV与List的转换方法
2018/04/19 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
2019/10/17 Python
python实现人脸签到系统
2020/04/13 Python
Python函数参数分类原理详解
2020/05/28 Python
Tensorflow使用Anaconda、pycharm安装记录
2020/07/29 Python
python从Oracle读取数据生成图表
2020/10/14 Python
python中实现词云图的示例
2020/12/19 Python
如何通过 CSS 写出火焰效果
2021/03/24 HTML / CSS
挂职学习心得体会
2014/09/09 职场文书
会计求职信怎么写
2015/03/20 职场文书
鲁滨孙漂流记读书笔记
2015/06/30 职场文书