コードからすべてのjQueryを削除しようとしています。今まで使った
if($(selector).find(':focus').length === 0){
//focus is outside of my element
}else{
//focus is inside my element
}
焦点を区別するために私の要素の1つの中にあります。 jQueryを使用しない方法を教えてください。
Node.contains
このためのネイティブDOMメソッド。
el.contains(document.activeElement);
activeElement
がel
の子孫であるかどうかを確認します。チェックする要素が複数ある場合は、some
関数を使用して反復できます。
CSSを使用 _:focus
_querySelectorAll()
の擬似クラス
_setTimeout(function(){
if (document.querySelectorAll("div :focus").length === 0)
console.log("not focused");
else
console.log("focused")
}, 2000);
_
_<div id="div">
<input type="text">
</div>
_
選択した要素を取得するには、次を使用できます。
let activeElement = document.activeElement
特定の要素を確認するには:
let elem = document.getElementById('someId');
let isFocused = (document.activeElement === elem);