【JavaScript】setInterval()・setTimeout()を解除する方法

JavaScriptでは、一定時間ごとに処理を繰り返すことができるsetIntervalメソッドや、一定時間後に処理を行うsetTimeoutメソッドがあります。

今回は、それらsetInterval、setTimeoutメソッドを解除する方法となります。

【JavaScript】setInterval()を解除する例

以下の例では、idの値にstartをもつ要素をクリックすると、setIntervalメソッドを実行し、繰り返し処理を開始します。

そして、idの値にstopをもつ要素をクリックすると、setIntervalメソッドの繰り返し処理を解除します。

document.addEventListener('DOMContentLoaded', function(){

	// setIntervalメソッドの戻り値をセットする変数
	var intervalId;

	// setIntervalメソッドを実行し、繰り返し処理を開始する関数
	function startInterval() {
		intervalId = setInterval(function() {
			// 実行させる処理を記述

		}, 1000);
	}

	// setIntervalメソッドの繰り返し処理を解除する関数
	function stopInterval() {
		clearInterval(intervalId);
	}

	document.getElementById('start').addEventListener('click', startInterval, false);
	document.getElementById('stop').addEventListener('click', stopInterval, false);
}, false);

startIntervalメソッドは実行すると、戻り値としてintervalIDを返します。

そのintervalIDは、作成した繰り返し処理を識別する正の整数となり、その値をclearIntervalメソッドの引数に指定することにより、指定した繰り返し処理を解除できます。

setTimeout()の場合

上記の例はstartIntervalメソッドでしたが、setTimeoutメソッドの場合、実行するとtimeoutID を返します。

そのtimeoutIDは、作成したタイマー処理を識別する正の整数となり、その値をclearTimeoutメソッドの引数に指定することにより、指定したタイマー処理を解除できます。

setInterval()とsetTimeout()の戻り値について

また、戻り値のintervalIDとtimeoutIDは、同じプールから割り振られます。また、clearIntervalメソッドとclearTimeoutメソッドは入れ替えて使用することもできます。

参考サイトなど

コメント投稿コメント投稿欄を開く

コメントは項目欄(*は必須項目)を入力し、「コメントを送信」ボタンをクリックしてください。 (メールアドレスは公開されることはありません。コメントの公開は承認制となります。)

また、多忙によりコメントには返信できない場合があります。

Twitterで返信する場合はこちらから。