首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vue框架中悬停改变多元素数据的研究

vue框架中悬停改变多元素数据的研究
EN

Stack Overflow用户
提问于 2017-03-10 22:45:38
回答 1查看 1.4K关注 0票数 0

我是vue新手!我有3个div,所有div都有一个消息数据(一个来源)!我绑定了一个方法,当鼠标悬停在一个div上时,它会改变消息!这个东西运行得很好,但是它改变了所有div的消息!我知道这是合乎逻辑的!但是我怎么能只对悬停的元素数据进行更改!不影响他人!

这是我的JSFiddle

Html是:

代码语言:javascript
复制
<div id="app">
  <div class="one" v-on:mouseover="change">
    {{ message }}
  </div>
  <div class="one" v-on:mouseover="change">
    {{ message }}
  </div>
  <div class="one" v-on:mouseover="change">
    {{ message }}
  </div>
</div>

Vue:

代码语言:javascript
复制
new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue.js!'
  },

  methods : {
      change : function() {
      this.message = "Changed"
    }
  }


}

)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-11 06:52:19

您需要创建单独的数据绑定,每个消息div一个。有许多方法可以解决这个问题。最佳解决方案取决于您的用例。但是,这里有一个简单的解决方案:

模板:

代码语言:javascript
复制
<div id="app">
  <div class="one" v-on:mouseover="change('foo', 'this is a message')">
    {{ messages.foo }}
  </div>
  <div class="one" v-on:mouseover="change('bar', 'here is a different message')">
    {{ messages.bar }}
  </div>
  <div class="one" v-on:mouseover="change('baz', 'message for baz')">
    {{ messages.baz }}
  </div>
</div>

Vue组件:

代码语言:javascript
复制
new Vue({
  el: '#app',
  data: function () {
    return { messages: {} }
  },

  methods : {
    change : function(key, message) {
      this.$set(this.messages, key, message)
    }
  }
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42721091

复制
相关文章

相似问题

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