解决element select组件下拉框切换页面时不能自动关闭问题

662 阅读1分钟

问题描述

  1. spa项目对vue-router使用了keep-alive
  2. 在A页面打开select的下拉框,直接切换到B页面
  3. A页面的下拉框,没有隐藏掉

element clickoutside的实现

github.com/ElemeFE/ele…

!Vue.prototype.$isServer && on(document, 'mousedown', e => (startClick = e));

!Vue.prototype.$isServer && on(document, 'mouseup', e => {
    nodeList.forEach(node => node[ctx].documentHandler(e, startClick));
});

解决方案

切换页面时,触发element的clickoutside

document.dispatchEvent(new MouseEvent('mousedown'));
document.dispatchEvent(new MouseEvent('mouseup'));