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