私はすでにdocument.activeElement.id
を使用して解決した奇妙な問題に遭遇しましたが、$('#id').is(':focus')
を使用すると常にfalse
を返すようです。私のコンソールで.is(focus)vs .activeElement?
は、私は以下をテスト...
> document.activeElement
<input type="text" for="zoomSlider" id="zoomText" oninput="zoomSliderUpdate(value)" value="100">
> $('#zoomText')
<input type="text" for="zoomSlider" id="zoomText" oninput="zoomSliderUpdate(value)" value="100">
> $('#zoomText').is(':focus')
false
> document.activeElement // to check if focus was lost somehow
<input type="text" for="zoomSlider" id="zoomText" oninput="zoomSliderUpdate(value)" value="100">
なぜis(':focus')
は偽を返すのですか?
あなたはZoomTextの目の前に#を残しました。 jqueryのidで要素を検索している場合は、$( '#zoomText')の前に#を付ける必要があります。 – Justin
この問題に関する記事はjQueryバージョンに関連しています。私はそれがあなたのシナリオだとは限りませんが、手掛かりになるかもしれません。 http://stackoverflow.com/questions/16956906/focus-selector-not-work –
私はこのノードプロジェクトのためにjQuery 2.2.xを使用しています。 –