Given the sample markup:
<div>
<input />
<input />
<input />
</div>
How can one, via jQuery, determine that div
has lost focus?
I can use focusout()
but that's not quite what I need. With focusout, it will get triggered as one tabs from input to input, as it's actually detecting (via event bubbling) that the input is losing focus.
Another way to word the requirement: I need to know when focus has moved OUTSIDE of the div.
I asked a similar question before:
jquery focusin() and preventing bubbling
But that was related to a pop-up UI and one can get around that by inserting a blank DIV behind it and putting a click/focus event on that as a trigger but that's won't work for this situation.
The next thought I had was to test for focusin when calling focusout:
$(".myobject").focusout(function(element) {
if(!($(this).focusin())){
console.log('doYourThing ' + $(this));
}
});
Alas, that doesn't work (I'm guessing due to the fact that it's evaluating focusin during the focusout event and, as such, it hasn't detected focusin yet.
Any clever solutions to this problem? Am I maybe missing a native jQuery event that does exactly what I'm looking for?
UPDATE:
Actually, the simplified question:
I need the equivalent of $('div').blur()
but that would actually work on a div (since blur can't be triggered from a div)
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…