こんにちは再びマスターズオブザウェブ:)今、私は新しい愚かな質問を持っています、そして私は私を許すことを求めています。私はこの解決策についてどこでも読みましたが、私に役立つものが見つかりませんでした。
私は持っています:
<input name="domain" type="text" id="domain" onKeyUp="javascript:chk_me();">
私が求めているのは、ボタンが押された後にチェックしないようにする方法ですが、1000ミリ秒のキーボードが非アクティブであると言った後ですか?
これを試して:
var timer;
function chk_me(){
clearTimeout(timer);
timer=setTimeout(function validate(){...},1000);
}
このようにして、キーが押されるたびに、タイムアウトが削除され、再度設定されます。
グローバルなしの別のアプローチ:
var typewatch = function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
}
}();
使用法:
JavaScriptを介してイベントを添付する:
window.onload = function () {
document.getElementById('domain').onkeyup = function() {
typewatch(function(){alert('Time elapsed!');}, 1000 );
};
};
または、例のようにインラインイベントハンドラー(あまり推奨されない)を使用します。
<input type="text" name="domain" id="domain"
onKeyUp="typewatch(function(){alert('Time elapsed!');}, 1000 );"/>
デモを試してください ここ 。
本当に便利な投稿です!
関数プロパティを使用した、グローバルを使用しない別のアプローチ:
function chk_me(){
if(typeof timer !== undefined){
clearTimeout(this.timer);
}
this.timer=setTimeout(function validate(){validate(...)},1000);
}