首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue onclick显示特定项目

Vue onclick显示特定项目
EN

Stack Overflow用户
提问于 2020-05-09 01:25:12
回答 2查看 35关注 0票数 0

我有一个关于Vue的问题。

我想将一个类添加到特定的项目中:

代码语言:javascript
复制
<p v-on:click="display = !display">Rediger joke</p>

Display之前为False,并将其改为true。

而且它是有效的。但我的问题是,这个onclick是在一个v-for循环中,我只想把"display“放在一个"update-site”上,而不是放在所有“update-site”上。我可以这样做吗?还是我必须尝试不同的设置?

非常感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-09 21:50:51

我有个想法可能会对你有所帮助。其思想是您使用例如visible属性扩展post对象,当您click event触发时,您更改此属性并添加.display类。请检查此jsfiddle

模板

代码语言:javascript
复制
 <div id="app">
   <article v-for="post in filteredPosts" :key="post.id">
     {{post.name}}
     <button @click="display(post)">show</button>
     <div class="post-content" :class="{display: post.visible}">this is the part I want to display onclick</div>
     <hr />
   </article>
 </div>

css

代码语言:javascript
复制
.post-content {
  display: none;
}

.post-content.display {
  display: block;
}

代码

代码语言:javascript
复制
new Vue({
  el: '#app',
  data() {
    return {
      posts: []
    };
  },
  created() {
    //when you load posts. add visible property.
    setTimeout(() => {
      //posts from server
      var postsFromServer = [{
          id: 1,
          name: 'Post One'
        },
        {
          id: 2,
          name: 'Post Two'
        }
      ];

      //add visible proprty.
      this.posts = postsFromServer.map(post => {
        return {
          ...post,
          visible: false
        };
      });
    }, 1000);
  },
  computed: {
    filteredPosts() {
      //do your filters
      return this.posts;
    }
  },
  methods: {
    display(post) {
      this.$set(post, 'visible', !post.visible);
    }
  }
});
票数 0
EN

Stack Overflow用户

发布于 2020-05-09 01:35:23

我有一篇文章,我从Firebase获取数据。

代码语言:javascript
复制
<article v-for="post in filteredPosts" :key="post.id">
{{post.name}}
<p v-on:click="display = !display"></p>
<div>this is the part I want to display onclick</div
</article>

updateInputs有display:none,但onclick我希望它显示为block:

代码语言:javascript
复制
.updateInputs.display {
      display: block;
      position: absolute;
      top:0;
      left:0;
      bottom: 0;
     background-color: white;
     box-shadow: 4px 4px 10px black;
     width: 100%;
     height: auto;
    overflow: hidden;
    overflow-y: scroll;
    padding-bottom: 10px;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61684591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档