サンプル マークアップを考えると、次のようになります。
<div>
<input />
<input />
<input />
</div>
div
jQueryを介して、フォーカスを失ったことをどのように判断できますか?
使用できますfocusout()
が、それは私が必要としているものではありません。focusout を使用すると、入力がフォーカスを失っていることを (イベント バブリングを介して) 実際に検出するため、入力から入力への 1 つのタブとしてトリガーされます。
要件を別の言い方をすると、いつフォーカスが div の外に移動したかを知る必要があります。
私は前に同様の質問をしました:
しかし、これはポップアップ UI に関連しており、その後ろに空白の DIV を挿入し、クリック/フォーカス イベントをトリガーとして配置することで回避できますが、この状況では機能しません。
次に考えたのは、focusout を呼び出すときに focusin をテストすることでした。
$(".myobject").focusout(function(element) {
if(!($(this).focusin())){
console.log('doYourThing ' + $(this));
}
});
残念ながら、それは機能しません (focusout イベント中に focusin を評価しているため、まだ focusin を検出していないためだと思います。
この問題に対する賢い解決策はありますか? 私が探しているものを正確に実行するネイティブjQueryイベントが欠けているのでしょうか?
アップデート:
実際には、単純化された質問:
相当するものが必要です$('div').blur()
が、実際にはdivで機能します(divからぼかしをトリガーできないため)