2017-09-22 6 views

答えて

0

あなたは現在のタイムアウトを破壊することができます

var timer; 
$('#startTimer').click(function() { 
    timer = setTimeout(function(){ 
     //... 
    },5000) 
}); 

$('#endTimer').click(function() { 
    clearTimeout(timer); 
    timer = setTimeout(function(){ 
     //... 
    },0) 
}); 
+0

あなたはあなたの正確な要件を掲示することができますか、あなたの質問を詳しく教えてください。 –

+0

私が理解する限り、タイマーを5秒から0秒に変更したいので、clearTimeout()を使用して古いタイマーを破棄し、新しいタイマーを開始することができます。 –

0

私が正しくあなたを理解する場合は、代わりに期限が切れるためにタイマーを待つので、すぐに機能を実行するための方法を持っていると思います。

クリック機能の外でタイマー機能を定義し、それを引数として注入できます。タイマーをクリアするには、click関数からtimerIdを返す必要もあります。このような

何か作業をする必要があります:

var delayed = function() { 
    console.log("It happened late"); 
}; 

var click = function(a, b, delayed) { 
    if(a !== b) { 
    return setTimeout(delayed, 5000); 
    } 
    // If a and b are equal, we don't do anything 
    return null; 
}; 

var timerId = click(1, 2, delayed); 
if(timerId) { 
    clearTimeout(timerId); 
    setTimeout(delayed, 0); 
} 

コンソールでこれを実行すると、テキストは、「それは後半に起こった」すぐに実行され、および遅延機能のない遅延実行はありません。

関連する問題