【问题标题】:Select currently focused element选择当前焦点元素
【发布时间】:2012-02-27 06:06:54
【问题描述】:

我想在整个文档中找到当前焦点所在的元素。 我尝试使用 jQuery 1.6 引入的 :focus 伪类:

$(document).find(":focus")

但是$(document).find(":focus").length 总是返回0

【问题讨论】:

    标签: javascript jquery focus pseudo-class


    【解决方案1】:

    与其他伪类选择器(以“:”开头的选择器)一样,它 建议在 :focus 前面加上标签名称或其他名称 选择器;否则,隐含通用选择器 ("*")。其他 也就是说,裸露的$(':focus') 等价于$('*:focus')。

    如果您想要替代$( document.activeElement ) 来检索当前具有焦点的元素,您可以使用:

    $(document).delegate( "*", "focus blur", function( event ) {
        var elem = $( this );
        //  here use elem.is( ":focus" ) which is your element that has focus
       //for example  : 
        elem.toggleClass( "focused", elem.is( ":focus" ) );
    });
    

    【讨论】:

      【解决方案2】:

      您应该可以使用document 的activeElement 属性:

      var focus = $(document.activeElement);
      

      如果您查看:focus 的 jQuery 文档,就会非常清楚:

      如果你正在寻找当前聚焦的元素,$( document.activeElement ) 将检索它而无需搜索 整个 DOM 树。

      值得注意的是,如果当前没有元素具有焦点,activeElement 将引用body。

      【讨论】:

      • 没问题,很高兴能帮上忙 :)
      猜你喜欢
      • 2020-07-25
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 2016-06-03
      • 2013-03-17
      • 1970-01-01
      • 1970-01-01
      • 2021-06-26
      相关资源
      最近更新 更多