【问题标题】:How can use vuetify expansion panel @click?如何使用 vuetify 扩展面板@click?
【发布时间】:2019-11-14 07:05:12
【问题描述】:

如果我用<a><v-btn>扩展面板设计总是坏掉,这种情况下怎么用click事件?

我尝试使用filterswatchcomputed,但我没有。

这是我的代码:

 <v-card xs12 sm6 md12>
         <template v-for="item in activityitems">
              <v-layout v-bind:key="item.ActivityID">
                     <a @click="activityList(item.ActivityID)">
                        <v-expansion-panel>
                           <v-expansion-panel-content>
                               <template v-slot:header>
                                    <v-card flat>
                                       <v-card-title>
                                        <span class="grey--text">
                                              Name:{{item.ActivityName}}
                                        </span>
                                       </v-card-title>
                                     </v-card>
                                     <v-card flat>
                                        <v-card-title>
                                          <span class="grey--text">
                                              Date:{{item.ActivityDate}}
                                          </span>
                                         </v-card-title>
                                      </v-card>
                                  </template>
                             </v-expansion-panel-content>
                         </v-expansion-panel>
                       </a>
                 </v-layout>
          </template>
</v-card>

【问题讨论】:

    标签: javascript vue.js vuejs2 vuetify.js


    【解决方案1】:

    你可以将@click直接传递给&lt;v-expansion-panel&gt;标签

    喜欢这支笔

    https://codepen.io/gonjeshk/pen/MWWPveX?editors=1010

    <div id="app">
      <v-app id="inspire">
        <v-expansion-panels>
          <v-expansion-panel
            v-for="(item,i) in activityitems"
            :key="i"
            @click="activityList(item.ActivityID)"
          >
            <v-expansion-panel-header>{{item.ActivityID}}</v-expansion-panel-header>
            <v-expansion-panel-content>{{item.ActivityName}}</v-expansion-panel-content>
          </v-expansion-panel>
        </v-expansion-panels>
      </v-app>
    </div>
    
    new Vue({
      el: '#app',
      data: {
        activityitems: [
          { ActivityID: "Learn JavaScript", ActivityName: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.' },
          { ActivityID: "Learn Vue", ActivityName: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit ullamco laboris nisi ut aliquip ex ea commodo consequat.' },
          { ActivityID: "Play around in JSFiddle", ActivityName: 'sed do eiusmod tempor aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.' },
          { ActivityID: "Build something awesome", ActivityName: 'sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.' }
        ]
      },
      methods: {
        activityList: function(id){
            console.log(id)
        }
      },
      vuetify: new Vuetify(),
    
    })
    

    【讨论】:

    • 我认为这个解决方案是正确的,但我使用的是 vuetify v1.5,所以它不起作用。但谢谢你帮助我:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-30
    • 2020-01-15
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    相关资源
    最近更新 更多