当鼠标悬停在Vue上的图标上时,显示文本框会弹出

时间:2020-04-04 04:06:43

标签: javascript html css vue.js

我正在一个个人项目中,我需要获取一个单元中所有设备的状态。此状态以及设备名称从函数deviceStatus()的数组中返回。如果所有设备均为ON,则unit.id旁边的主页图标将变为绿色。如果该单元内的所有设备均为OFF,则主页图标将变为红色。如下所示,此代码可以很好地工作。

我正在寻找帮助来显示从deviceStatus()返回的数组,因为当鼠标悬停在“主页”图标上时,文本框会弹出。我对mouseover事件感到非常困惑,我们将不胜感激。

<template>
  <div>
    <div class="d-flex flex-row align-items-center py-2 px-2">
      <h1 class="display-1 unit-status m-0">{{ unit ? unit.id : null }}</h1>
      <font-awesome-icon
          icon="home"
          :style="deviceStyling"
          class="tab-icon mx-2"
          size="lg"
          id="unit-info"/>
    </div>
</template>

<script>

export default {

  computed: {
    deviceStatus() {
      const device = this.unitDvc(this.currentSite.id);
      return device.map(dv => {
        const status = this.deviceStat(dv.device_id);
        return { name: dv.name, status };
      });
    },
    deviceStyling() {
      var turnedOn = null;
      var turnedOff = null;
      for (var i = 0; i < this.deviceStatus.length; i++) {
        if (this.deviceStatus[i]['state'] == 'on') {
          turnedOn = turnedOn + 1;
        } else {
          turnedOff = turnedOff + 1;
        }
      }
      if (turnedOn == this.deviceStatus.length) {
        return { 'color': `green` };
      } else if (turnedOff == this.deviceStatus.length) {
        return { 'color': `red` };
      }

    }
  },
</script>

2 个答案:

答案 0 :(得分:1)

确保已安装v-tooltip依赖项

AppModule

并添加到您的应用

npm install --save v-tooltip

然后,您可以将指令添加到您的组件中:

import Vue from 'vue'
import VTooltip from 'v-tooltip'

Vue.use(VTooltip)

答案 1 :(得分:0)

如前所述,您正在使用HTML和JavaScript,可以使用HTML的简单属性,即TITLE。就像mouseover一样。

更多信息:Title - MDN