画像をクリックすると、3 秒後に画像が変わります。しかし、その 3 秒間に画像を複数回クリックすると、新しいタイマーが開始されます。特に画像を 1 秒間に 5 回クリックすると 3 秒間は変化しませんが、3 秒間経過すると 1 秒間に 5 回変化します。
この関数が実行されている場合、現在実行中の関数を強制終了し、新しい関数を開始するという if ステートメントを実行する方法はありますか。このようにして、画像の最初の 4 回のクリックを無視して 5 回目のクリックのみを実行するか、最初のクリックのみを実行して他の 4 回のクリックをスキップします。
コードは次のとおりです。
function auto_change(a,b) { // a is the current image and b calls a function that makes certain image visible, it works but need to fix the multiple clicks problem
if (document.getElementById(a).style.visibility == 'visible'){
setTimeout(b,3000);
return;
}