首先,我们来复现一下问题
<el-tooltip class="item" effect="dark" content="编辑/发布" placement="top">
<el-button
type="success"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['projectinfo:info:edit']"
v-if="scope.row.proStatus == 0"
circle
></el-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="删除操作" placement="top">
<el-button
type="danger"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['projectinfo:info:remove']"
v-if="scope.row.proStatus != 1||userRoleId!=100"
circle
></el-button>
</el-tooltip>
以上是我所用到的前端代码,大家主要关注content、v-if,以及v-if中的scope.row.proStatus参数,上面代码在页面中显示为后面的两个按钮,如下图红框
我要做的操作是在这个页面点击打回按钮,这样scope.row.proStatus的值就会变为0,从而显示出我们的问题按钮
问题在于,通过上面代码可知,当我们的光标移动到它上面,它应该出现像上个页面的黄色按钮一样的提示,然而我们光标移动到上面,啥也没发生(图片上实际上是我光标在上面呢),但这时候当我们刷新页面后,重新将光标放上去
哇塞,它出现了!!
虽然,这也算显示成功了,但每次刷新...也太low了!!
通过F12,看源码我们发现了一个区别
可以看出刷新后,我们的问题按钮出现aria-describedby和tabindex参数,具体为什么,我也不知道,但问题就是这里了,经过反复的实验...原理实在不懂,只能无脑费力了
现在,我们直接出解决方案,将v-if条件放到el-tooltip标签中,如下
<el-tooltip class="item" effect="dark" content="编辑/发布" placement="top"
v-if="scope.row.proStatus == 0">
<el-button
type="success"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['projectinfo:info:edit']"
circle
></el-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="删除操作" placement="top"
v-if="scope.row.proStatus != 1||userRoleId!=100">
<el-button
type="danger"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['projectinfo:info:remove']"
circle
></el-button>
</el-tooltip>
问题就解决啦~