javascript - 檢查是否已經調用 clearInterval?

  显示原文与译文双语对照的内容
0 0

給定以下代碼:


bob = setInterval(function, 1000);
clearInterval(bob);

是否有一種方法來知道該間隔是否已經被清除?

目前,我自己通過取消'bob'來跟蹤這一點,但我很好奇我的額外代碼行是否不必要:


clearInterval(bob);
bob = null;
if (!bob) itIsCleared();

謝謝!

时间: 原作者:

0 0

setInterval的返回值只是用來傳遞給clearInterval的唯一標識。 它不是具有任何附加信息的結構化對象,也不會在調用clearTimeout時設置為空。

原作者:
0 0

bob只包含用於清除它的間隔的標識。 當你調用clearInterval時,它會得到與該標識相關的間隔並清除它。 標識未被更改。

在這裡查看演示文稿

例如:


<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>

這將顯示間隔( 早些時候由setInterval返回)的標識。 如果你知道間隔的標識是 1,那麼你可以使用 clearInterval(1) 清除間隔。 所以你把bob設為空的方法是一個好方法。 請確定bob不是 return true,如果bob恰好是 0. ! :

原作者:
...