视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
vue2.0选中active后其他选项互斥实现步骤
2020-11-27 19:51:19 责编:小采
文档
这次给大家带来vue2.0选中active后其他选项互斥实现步骤,vue2.0选中active后其他选项互斥的注意事项有哪些,下面就是实战案例,一起来看一下。

在正常的js中。我们如果要实现点击选中active然后其他取消的效果,我们可以定义一个类,当点击的时候给给多有的dom取消active的类,给当前元素加上这个类名,说的很啰嗦,直接来看代码说话吧(表示楼主用的是jq):

 <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>

效果如下图所示:

但是在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这个类名。说的很简练,不懂的可以加博主一起探讨

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

angular实现页面局部打印步骤详解

vuex使用步骤详解(附代码)

下载本文
显示全文
专题