このコードを考えると:
bob = setInterval(function, 1000);
clearInterval(bob);
その間隔がクリアされたかどうかを知る方法はありますか?
現在、「 」の設定を解除することで、これを自分で追跡してbob
いますが、コードの余分な行が不要かどうかに興味があります。
clearInterval(bob);
bob = null;
if (!bob) itIsCleared();
ありがとう!
このコードを考えると:
bob = setInterval(function, 1000);
clearInterval(bob);
その間隔がクリアされたかどうかを知る方法はありますか?
現在、「 」の設定を解除することで、これを自分で追跡してbob
いますが、コードの余分な行が不要かどうかに興味があります。
clearInterval(bob);
bob = null;
if (!bob) itIsCleared();
ありがとう!
の戻り値は、 に戻すために使用するsetInterval
一意の IDclearInterval
です。追加情報を含む構造化オブジェクトではなく、 を呼び出したときに null に設定されることもありませんclearTimeout
。
bob には、それをクリアするために使用される間隔の ID のみが含まれます。clearInterval を呼び出すと、その ID に関連付けられた間隔が取得され、クリアされます。IDはまったく変更されません。
例:
<html>
<head>
<title>Javascript clearInterval</title>
</head>
<body onload="startInterval();">
<center>
<div id="myTime"></div>
<input type="button" value="start Interval" onclick="startInterval();" />
<input type="button" value="stop Interval" onclick="stopInterval();" />
</center>
<script language="javascript">
var interval;
function startInterval()
{
// setInterval of 1000 milliseconds i.e. 1 second
// to recall the startTime() method again n again
interval = setInterval("startTime();", 1000);
}
function startTime()
{
// Date object to get current time
var timeFormat = new Date();
// set the current time into the HTML div object.
document.getElementById('myTime').innerHTML = timeFormat.toLocaleTimeString();
}
function stopInterval() //***********IMPORTANT FUNC******************
{
// clearInterval to stop the setInterval event
alert(interval);
clearInterval(1);
}
</script>
</body>
</html>
これにより、間隔のIDが表示されます(setIntervalによって以前に返されました)。間隔の ID が 1 であることがわかっている場合は、clearInterval(1) を使用して間隔をクリアできます。したがって、bob を null に設定する方法は、それを行う良い方法です。bob がたまたま 0 の場合、!bob が true を返さないことを確認してください。:D