寻找一种仅在元素被截断时显示工具提示的方法

Looking for a way to show tooltip only when the element is truncated

我需要帮助找到一个解决方案,以便仅在 span 元素被截断时才显示工具提示元素。

   <q-td v-for="(col,index) in props.cols" :key="col.name" :props="props">
        <span class="truncate">{{ col.value }}</span>
        <q-tooltip content-class="bg-primary" anchor="top middle" self="top middle" v-if="(index===0 || index===4) && col.value">{{ col.value }}</q-tooltip>
    </q-td>

我尝试使用 scrollWidth 和 clientWidth 来实现,但是当我尝试使用 document.getElementById(elementID) 访问 span 元素时,它 returns 未定义,我假设是因为 span 元素是动态添加的。 截断 class 定义如下:

.truncate {
    display: block;
    width: 0;
    min-width: 100%;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
  }

您可以创建一种方法来检查文本长度,并仅在文本长度大于特定阈值(因此被截断)时显示工具提示。例如:

<q-td v-for="(col,index) in props.cols" :key="col.name">
    <span class="truncate">{{ col.value }}</span>
    <q-tooltip content-class="bg-primary" v-if="isTooltip(col.value)"> 
       {{ col.value }}
    </q-tooltip>
</q-td>

methods: { 
  isTooltip(col) {
    return col.length > 10
  }
}