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可以将遍历出来的值放入标签属性吗

第十节:Vue指令:v-for列表循环

第十节:Vue指令:v-for列表循环

Vue.js学习之条件v-if和列表循环v-for详解

vue中用v-for循环出出来的div下面的span不给宽度也能相对于div居中

vuejsLearn--- v-for列表渲染