Учитывая разметку образца:
<div>
<input />
<input />
<input />
</div>
Как можно через jQuery определить, что div
потерял фокус?
Я могу использовать focusout()
, но это не совсем то, что мне нужно. С фокусом он будет запускаться как одна вкладка от входа к входу, так как она фактически обнаруживает (через пузырьковое событие), что вход теряет фокус.
Еще один способ сформулировать требование: мне нужно знать, когда фокус переместился OUTSIDE из div.
Я задал аналогичный вопрос раньше:
jquery focusin() и предотвращение барботажа
Но это было связано с всплывающим пользовательским интерфейсом, и можно обойти это, вставив в него пустой DIV и помещая событие click/focus на него как триггер, но это не будет работать для этой ситуации.
Следующей мыслью, которую я имел, было проверить для focusin при вызове фокуса:
$(".myobject").focusout(function(element) {
if(!($(this).focusin())){
console.log('doYourThing ' + $(this));
}
});
Увы, это не работает (я предполагаю, что он оценивает focusin во время события focusout и, как таковой, пока не обнаружил фокуса.
Какие-нибудь умные решения этой проблемы? Возможно, мне не хватает собственного события jQuery, которое делает именно то, что я ищу?
UPDATE:
Собственно, упрощенный вопрос:
Мне нужен эквивалент $('div').blur()
, но это действительно работает на div (поскольку размытие не может быть вызвано из div)