代码之家  ›  专栏  ›  技术社区  ›  Anil Namde

哪种方法更正确地获取文档中具有焦点的元素?

  •  1
  • Anil Namde  · 技术社区  · 15 年前

    我已经讨论了与此相关的几个问题,我发现了两种常见的方法。

    1. 拥有全局元素,并通过将onFocus()事件附加到每个元素来更新它。
    2. document.activeElement,并具有以下代码,以便在旧浏览器不支持该属性的情况下更新该元素

      var focusedElement;
      document.addEventListener("focus", function(e) {
          focusedElement = e.target;
      }, true);
      document.addEventListener("blur", function(e) {
          focusedElement = null;
      }, true);
      

    现在我的问题是,在上述两种方法中,哪一种更正确/简单/有效?为什么? 谢谢大家,

    1 回复  |  直到 13 年前
        1
  •  1
  •   Alsciende    15 年前

    您的解决方案1效率极低。当您可以附加到主体本身时,是否将事件处理程序附加到页面上的每个(可聚焦)元素?这肯定不是正确/容易/有效的方法。解决方案2看起来相当不错。