单击时专注于父元素不可用

时间:2018-08-08 14:55:42

标签: javascript modal-dialog focus

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; }

1 个答案:

答案 0 :(得分:1)

您可以检查元素是否隐藏,如果是,则将父元素的引用分配给this.focusedElBeforeOpen

if (window.getComputedStyle(this.focusedElBeforeOpen).display === 'none') {
  this.focusedElBeforeOpen = this.focusedElBeforeOpen.parentElement;
}