1
  • 1 1
  • 1

    vue里面如何让v-for循环出来的列表里面的列表click事件只对当前列表有效

    兔子只吃胡萝卜

     

    随笔 - 94  文章 - 0  评论 - 15

    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;
        }
      }
    })

    复制代码

     

    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值