【问题标题】:Show child of this parent click vue显示此父项的子项单击 vue
【发布时间】:2019-07-23 14:28:44
【问题描述】:

我想在单击其父级后显示直接子级。 jquery容易,vue难,怎么办?

模板:

<boxes inline-template>    
<div class="white-box" @click="toggleTick">Purchase only 
        <div v-if="showTick"><i class="fas fa-check"></i></div>
    </div>
</boxes>

js

Vue.component('boxes', {
    data: function () {
        return {
            showTick: false
        }
    },
    methods: {
        toggleTick () {
          this.showTick = !this.showTick
      } 
    }
})
  var app = new Vue({
    el: '#app',
        data: {

        }
  })

目前我有多个“白盒” div,它显示了所有这些的子 div,我只想显示被点击的父母的孩子的 div。

【问题讨论】:

    标签: vue.js vue-component


    【解决方案1】:

    您的white-boxes 共享同一个showTick 变量,因此单击其中一个变量会更改所有变量的值。

    有两种可用的解决方案:

    • 在同一个boxes 组件下有多个boxes 组件,而不是多个white-boxes。某些东西在 DOM 中最终看起来像这样

      <boxes>...</boxes>
      <boxes>...</boxes>
      <boxes>...</boxes>
      
    • showTick 使用数组并在调用toggleClick 时使用索引。另请注意,要使数组中的更改具有反应性,您需要使用 Vue.set

    我推荐前一种解决方案。

    【讨论】:

      【解决方案2】:

      你应该有你期望的行为:

      Vue.component('boxes', {
          data: function () {
              return {
                  showTick: false
              }
          }
      })
      var app = new Vue({
        el: '#app'
      })
      <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
      <div id="app">
        <boxes inline-template>    
          <div class="white-box" @click="showTick = !showTick">
            <span>
              Purchase only 
            </span>
            <div v-if="showTick">Component 1</div>
          </div>
        </boxes>
        <boxes inline-template>    
          <div class="white-box" @click="showTick = !showTick">
            <span>
              Purchase only 
            </span>
            <div v-if="showTick">Component 2</div>
          </div>
        </boxes>
      </div>

      【讨论】:

      • 这很好,但是如果子 div 没有在任何组件中显示,我该怎么做才能只显示子 div?因此,一次只能显示一个子 div
      • 这符合我的要求,所以谢谢,但这个链接做了我真正想要的,一次只显示一个孩子stackoverflow.com/questions/45521138/…
      猜你喜欢
      • 2019-03-09
      • 1970-01-01
      • 2018-10-15
      • 1970-01-01
      • 1970-01-01
      • 2013-11-28
      • 1970-01-01
      • 1970-01-01
      • 2019-03-17
      相关资源
      最近更新 更多