0

これがこの質問の正しいスタックであることを願っています。

ツールチップとエラー メッセージに問題があります。私のツールチップは、各テキスト ウェルの「フォーカス」に表示するように設定されています。入力されたデータが基準に適合しない場合、いくつかのウェルにエラー メッセージが表示されます。問題は、エラー メッセージがポップアップ表示され、フォーカスが次のボックスに移動して、エラー メッセージを読む前に閉じることです。フォーカスは自動的に間違って入力されたボックスに戻りますが、元のツールチップが表示されます。

フィールドが正しくない場合に「フォーカスの変更」または「ぼかし」機能をキャンセルする方法、エラーメッセージが表示される時間を設定する方法、または「ぼかし」を遅らせる方法はありますか秒?

お時間を割いていただき、ありがとうございます。ウィンストン

4

1 に答える 1

0

がトリガーsetTimeoutされる前に 5 秒が経過すると、変数を設定するために使用できます。blurそうでない場合は、代わりに setTimeout ハンドラでメッセージを非表示にすることができます。

var focusAtLeastFiveSecondsAgo;
$(thing).focus(function(){
    showMessage();
    focusAtLeastFiveSecondsAgo = false;
    setTimeout(function(){
         focusAtLeastFiveSecondsAgo = true;
         if (!$(thing).is(":focus")){
              hideMessage();
         }
    }, 5000);
});
$(thing).blur(function(){
    if (focusAtLeastFiveSecondsAgo){
         hideMessage();
    }
});

setTimeout ハンドラで要素がまだフォーカスされているかどうかを確認していることに注意してください。ぼかしがトリガーされていない場合は、メッセージが表示されただけであるため無視されました。

コードを読みやすくするために、変数を格納して最小限の遅延を処理する jQuery プラグインを作成することをお勧めします。

于 2013-02-06T17:38:57.790 に答える