省流
根元素设置了 pointer-events: none导致所有元素不响应鼠标事件,给el-pagination设置pointer-events: auto也不会有效,因为弹出的菜单是挂载到全局的,因此需要给 popper 单独设置pointer-events: auto 代码:
.el-popper {
pointer-events: auto;
}
放在全局生效的样式中,比如App.vue(记得style中不要加scoped)或者main.js引入全局样式的css文件
吐槽
第一次写博客,今天写大数据页面的详情弹窗被这个bug卡了一个多小时,但是我室友是后端哥们,和他吐槽也没用,今天洗澡的时候实在是想发泄一下吐槽欲,顺便给可能遇到这个问题的前端哥们避个坑
我这个项目是地图相关的大数据页面,所以给全局设置了pointer-events: none
之前写弹窗的时候明明能很快的意识到是这个设置的问题,但是可能是下午了脑子不清醒吧,也可能是上个项目用的Vue2的elementUi,切过来Vue3后用elmentPlus一直怀疑是我属性和事件写的有问题
直到我试着在另一个地方用elementPlus提供的官方示例发现也无法触发 size-change
我看着鼠标悬浮没效果,点击之后立刻失焦,脑子里划过之前写弹窗的时候遇到的情况
脑子里突然反应过来,我之前不是就遇到过这种情况吗,写弹窗的时候明明一眼就知道问题出在没有设置pointer-events: none,结果在这里反而卡半天
于是我立马去自定义elementPlus样式里把pointer-events: none加上了,
果然加上之后就正确触发事件了
这件事告诉我们合格的前端一定要是一个好的测试(不是)
总而言之,遇到bug,应该先考虑复现,再去寻找原因,越急反而越容易被卡住
应该先复现,再根据复现情况判断大致原因
【整活小片段】
(INVASION)
哈哈,觉得眼熟?😃
这样的场景,此时此刻正在系统各处上演✋😮🖐️
下一个可能就是你(指指点点)👈😐