web-dev-qa-db-ja.com

jQueryを使用して、それにフォーカスしている要素を選択する方法

現在フォーカスがある要素をどのように選択できますか?

JQueryには:focusフィルターがないため、次のようなものを使用できます。

$('input:focus').someFunction();
64
jQuery Lover

それを行う最良の方法は、onFocusイベントのハンドラーをセットアップし、変数をフォーカスを持つ要素のIDに設定することです。

このようなもの:

var id;

$(":input").focus(function () {
     id = this.id;
});
32
Mike_G

$(document.activeElement)は、現在フォーカスされている要素を返し、疑似セレクター:focusを使用するよりも高速です。

ソース: http://api.jquery.com/focus-selector/

153
Sam Shiles
alert($("*:focus").attr("id"));

JQueryを使用します。

要素のIDがフォーカスされていることを警告します。

役に立つことを願っています。

123
BiBi

やってみました

$.extend($.expr[':'], {
    focused: function(elem) { return elem.hasFocus; }
});

alert($('input :focused').length);
5
bendewey

JQueryを使用する場合、 このようなセレクター を記述できます。

_$.expr[':'].focus = function(a){ return (a == document.activeElement); }
_

その後、現在フォーカスされている要素を選択できます:$(":focus")

フォームコントロールだけがフォーカスできるわけではありません。 tabindexを持つHTML要素は、最新のブラウザーでフォーカスできます。

5
jmanrubia

現在のjQueryバージョン(1.7)のドキュメントの例から抜粋:

$(elem).is(":focus");
4
TurboHz

要素をチェックするためにフォーカスがあるかどうか。

if ($("...").is(":focus")) {
  ...
}
1
Somnath Muluk

以下にCoffeeScriptバージョンを示します。 jmanrubiaのコードに基づいて:

$.expr[':'].focus = (a) -> a is document.activeElement

また、次のように呼び出すこともできます$(".:focus")

0
Hengjie