2009-09-24 7 views
29

diesen Code Gegeben:Prüfen ob clearInterval aufgerufen wurde?

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

Gibt es nun eine Möglichkeit, zu wissen, ob das Intervall gelöscht worden ist?

Derzeit verfolge ich das selbst, durch unsetting ‚bob‘, aber ich bin gespannt, ob meine zusätzliche Codezeile ist nicht notwendig:

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

Dank!

Antwort

30

Der Rückgabewert von setInterval ist nur eine eindeutige ID, die Sie verwenden, um zurück zu clearInterval. Es ist kein strukturiertes Objekt mit zusätzlichen Informationen, und es wird auch nicht auf null gesetzt, wenn Sie clearTimeout aufrufen.

+0

Also ich mache es richtig :-D Danke! – swajak

5

bob enthält nur eine ID des zum Löschen verwendeten Intervalls. Wenn Sie clearInterval aufrufen, ruft es das dieser ID zugeordnete Intervall ab und löscht es. Die ID wird überhaupt nicht geändert.

see here for demonstration

Beispiel:

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

Dies zeigt Ihnen die ID des Intervalls (zurückgegeben von setInterval früher). Wenn Sie wissen, dass die ID des Intervalls 1 ist, können Sie clearInterval (1) verwenden, um das Intervall zu löschen. Deine Art, den Bob auf null zu setzen, ist eine gute Methode, dies zu tun. Seien Sie einfach sicher, dass! Bob nicht wahr zurückgibt, wenn der Bob zufällig 0 ist.: D