Затухающая форма при фокусировке

Как я могу сделать форму исчезнуть, когда фокус полностью потерян? Или другой способ выразить это: как я могу предотвратить исчезновение формы, когда фокус просто перемещается с одного входа на другой?

Мой неудачный подход:

form.focusout(function(){
    form.fadeout();
});

Я связал добавление оператора if, подсчитывающего количество входов с фокусом, но безрезультатно, так как lostfocus срабатывает до того, как будет установлен новый фокус.

1 ответ

Решение

Попробуйте установить тайм-аут, а затем, если другой вход имеет фокус, очистите тайм-аут, чтобы избежать затухания:

var timeout;
form.find('input').on('focusout', function(){
    timeout = setTimeout(function() {form.fadeout();}, 2000);
});

form.find('input').on('focusin', function(){
    clearTimeout(timeout);
});
Другие вопросы по тегам