this.focusedElBeforeOpen = document.activeElement;
这部分代码集中在模式关闭时的最后一个活动元素上。在下拉菜单中单击元素(打开模式)时出现问题,单击后,下拉菜单得到display:none
。在这种情况下,我想将重点放在父元素上。我需要纯js(无jquery)中的此解决方案
open() {
this.setSpecificContent();
this.$modal
.addClass(classes.isVisible)
.removeAttr('aria-hidden')
.removeAttr('aria-disabled')
.siblings()
.attr('aria-hidden', 'true');
this.setTabIndexElementValue(-1, this.$descriptionEl);
this.defer(() => this.$descriptionEl.focus(), time.animation);
this.focusedElBeforeOpen = document.activeElement;
}
答案 0 :(得分:1)
您可以检查元素是否隐藏,如果是,则将父元素的引用分配给this.focusedElBeforeOpen
:
if (window.getComputedStyle(this.focusedElBeforeOpen).display === 'none') {
this.focusedElBeforeOpen = this.focusedElBeforeOpen.parentElement;
}