0

フォーカスが完全に失われたときにフォームをフェードアウトさせるにはどうすればよいですか? 別の言い方をすれば、ある入力から別の入力にフォーカスが移動したときにフォームがフェードしないようにするにはどうすればよいでしょうか?

私の失敗したアプローチは次のとおりです。

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

フォーカスのある入力の数をカウントする if ステートメントを追加することに結び付けましたが、新しいフォーカスが設定される前に lostfocus が発生するため、何のメリットもありません。

4

1 に答える 1

2

タイムアウトを設定してみて、別の入力にフォーカスがある場合は、タイムアウトをクリアしてフェードアウトを回避します。

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

form.find('input').on('focusin', function(){
    clearTimeout(timeout);
});
于 2015-04-14T14:53:38.850 に答える