返回
如何巧妙解决element弹出多个message消息提示的问题
前端
2024-01-14 01:25:20
在新版本的element中,官方对 message消息提示 做了修改,修改成一个请求对应一个提示语,这就会导致多条消息提示共存的一个问题,而很多情况下,这多条消息提示的内容是一样的,从用户的体验来说,这并不是一个好的体验。
为了解决这个问题,我们可以使用以下两种方法:
- 合并相同的message提示
我们可以使用JavaScript代码来合并相同的内容。代码如下:
// 获取所有的message提示元素
const messageList = document.querySelectorAll('.el-message');
// 遍历所有message提示元素
for (let i = 0; i < messageList.length; i++) {
const message = messageList[i];
// 获取message提示元素的内容
const messageContent = message.querySelector('.el-message__content');
// 如果内容为空,则跳过
if (!messageContent) {
continue;
}
// 获取message提示元素的内容文本
const messageText = messageContent.textContent;
// 判断是否已经存在相同的内容
let isExist = false;
for (let j = 0; j < messageList.length; j++) {
const otherMessage = messageList[j];
// 如果内容相同,则合并
if (otherMessage !== message && otherMessage.querySelector('.el-message__content').textContent === messageText) {
isExist = true;
otherMessage.remove();
break;
}
}
// 如果不存在相同的内容,则显示
if (!isExist) {
message.style.display = 'block';
}
}
- 使用message组件的closeAll()方法
我们可以使用message组件的closeAll()方法来关闭所有message提示。代码如下:
this.$message.closeAll();
这两种方法都可以解决element中弹出多个message消息提示的问题。第一种方法可以合并相同的内容,第二种方法可以关闭所有message提示。具体使用哪种方法,可以根据实际情况来决定。
希望本文能帮助您解决element中弹出多个message消息提示的问题。如果您还有其他问题,欢迎随时提问。