问题描述
在点击类似需要弹出消息提示的按钮时,点击第一遍并没有弹出,连续点击两下才会看到消息提示
问题解决
可能原因分析
- 异步操作:在调用this.$message方法前,可能存在某个异步操作,例如setTimeout延迟执行或者API请求等。异步操作会在第一次点击时开始执行,因此消息提示不会立即弹出。当第二次点击时,可能已经完成了异步操作,消息提示才会正常弹出。
- 事件冲突:在同一个元素上绑定了多个事件,可能导致事件冲突。第一次点击时,可能触发了其他事件而没有触发this.message方法,消息提示才会弹出。先检查是否有其他事件绑定在同一个元素上。
- 其他代码逻辑问题:能是其他代码逻辑导致,看是否有其他操作或条件判断影响了消息提示的正常弹出。
- 消息弹框弹出,但是被遮盖:检查消息弹框弹出的位置z-index是否小于相同位置的其他元素,导致消息弹框被遮盖
最终解决方案
经过排查确认,消息弹框的z-index为1000,而相同位置的元素z-index为9999,所以导致一开始的消息弹框被遮盖,而组件弹出的z-index会递增,所以Message消息提示第二次才会出现。所以修改对应的z-index即可正常看到消息弹框;