vue里面如何让v-for循环出来的列表里面的列表click事件只对当前列表有效
Posted 兔子只吃胡萝卜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue里面如何让v-for循环出来的列表里面的列表click事件只对当前列表有效相关的知识,希望对你有一定的参考价值。
<li @click="show"> <span>1</span> </li> <li @click="show"> <span>1</span> </li> <li @click="show"> <span>1</span> </li>
li点击只让当前的 li 下面的span 隐藏
方法一:用vue就尽量遵从数据驱动的想法,实现这个的方法很多,但是尽量不要直接去操作dom。
<div id="app"> <ul> <li v-for="list in lists" @click="show($index)"> <span v-show="$index !== i">{{ list }}</span> </li> </ul> </div> <script> new Vue({ el: ‘#app‘, data: { lists: [1, 1, 1], i: -1 }, methods: { show (index) { this.i = index } } }) </script>
方法2:
<ul id="app"> <li v-for=‘item in items‘ @click="toggle(item)"> <span v-if=‘item.show‘>{{item.content}}</span> </li> </ul>
new Vue({ el: ‘#app‘, data: function() { return { items: [{ content: ‘1 item‘, show: true }, { content: ‘2 item‘, show: true }, { content: ‘3 item‘, show: true }] } }, methods: { toggle: function(item) { item.show = !item.show; } } })
以上是关于vue里面如何让v-for循环出来的列表里面的列表click事件只对当前列表有效的主要内容,如果未能解决你的问题,请参考以下文章
vue.js 中的v-for可以将遍历出来的值放入标签属性吗