Как выбрать элемент с текущим фокусом?
В jQuery нет фильтра :focus, поэтому мы можем использовать что-то вроде этого:
:focus
$('input:focus').someFunction();
$(document.activeElement) вернет текущий фокусированный элемент и будет быстрее, чем использование псевдоселектора: focus.
$(document.activeElement)
Источник: http://api.jquery.com/focus-selector/
alert($("*:focus").attr("id"));
Я использую jQuery.
Оповещение о том, что элемент находится в фокусе.
Я надеюсь, что это полезно для вас.
Действительно лучший способ сделать это - установить обработчик для события onFocus, а затем установить переменную в идентификатор элемента, который имеет фокус.
как то так:
var id; $(":input").focus(function () { id = this.id; });
Если вы используете JQuery, вы можете написать селектор, подобный этому :
$.expr[':'].focus = function(a){ return (a == document.activeElement); }
Затем вы можете выбрать текущий элемент: $(":focus")
$(":focus")
Не только элементы управления формой могут иметь фокус. Любой HTML-элемент с tabindex может быть ориентирован в современных браузерах.
Вы пробовали
$.extend($.expr[':'], { focused: function(elem) { return elem.hasFocus; } }); alert($('input :focused').length);
Поднято из примеров для текущей версии jQuery (1.7) документы:
$(elem).is(":focus");
Для проверки элемента имеет фокус или нет.
if ($("...").is(":focus")) { ... }
Вот его версия CoffeeScript. Основано на коде jmanrubia:
$.expr[':'].focus = (a) -> a is document.activeElement
Вы бы также назвали это так $(".:focus")
$(".:focus")