问题描述
- spa项目对vue-router使用了keep-alive
- 在A页面打开select的下拉框,直接切换到B页面
- A页面的下拉框,没有隐藏掉
element clickoutside的实现
!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'));