私の主な質問は次のとおりです。clearTimeout()はタイマーを停止し、タイマー内で関数を実行しませんか?または、タイムアウトをクリアしてすぐに関数を実行しますか?
これが私の例です
$('input').keyup(function(){
var thisClass = $(this).attr('class').split(" ");
var thisValue = $(this).val();
var thisError = $(this).parent().siblings('.error');
var thisTimeout;
if(thisClass[1] == "letters"){
if(thisValue.length <= 1){
thisTimeout = setTimeout(function(){
thisError.html("You must have at least 2 characters");
thisError.show();
}, 800);
} else {
clearTimeout(thisTimeout);
thisError.hide();
thisError.html("");
}
}
});
これは、入力ボックスに少なくとも2文字が含まれているかどうかを確認するコードチェックの一部です。現在、このコードは、2文字以下の場合、800ミリ秒後にタイムアウトを実行します。入力ボックスが2文字を超える場合、十分に速く入力していると、入力を終了してもエラーボックスが表示されます。もう1文字入力することでエラーをクリアできますが、名前をすばやく入力すると、入力が完了するとエラーが表示されます。
私もこのコードを持っています:
$('input').keydown(function(){
clearTimeout(thisTimeout);
thisError.hide();
});
Thoughtsと入力し続けると、エラーがクリアされることを期待していますか?