2009-09-24 22 views
29

इस कोड को देखते हुए:यह जांच कर रहा है कि क्या स्पष्ट अंतराल कहा गया है?

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

क्या अब यह जानने का कोई तरीका है कि क्या अंतराल को मंजूरी दे दी गई है?

वर्तमान में, मैं 'bob' को अनसेट करके स्वयं का ट्रैक रखता हूं, लेकिन अगर मैं कोड की मेरी अतिरिक्त पंक्ति अनावश्यक है तो मुझे उत्सुकता है:

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

धन्यवाद!

उत्तर

30

setInterval का वापसी मूल्य केवल अद्वितीय आईडी है जो आप clearInterval पर वापस जाने के लिए उपयोग करते हैं। यह किसी भी अतिरिक्त जानकारी के साथ एक संरचित वस्तु नहीं है, और न ही जब आप clearTimeout पर कॉल करते हैं तो यह शून्य हो जाता है।

+0

तो मैं इसे सही कर रहा हूं :- धन्यवाद! – swajak

5

बॉब में केवल इसे साफ़ करने के लिए उपयोग किए जाने वाले अंतराल की एक आईडी शामिल है। जब आप स्पष्ट अंतराल को कॉल करते हैं, तो उसे उस आईडी से जुड़े अंतराल मिलते हैं और इसे साफ़ कर देते हैं। आईडी बिल्कुल नहीं बदला गया है।

see here for demonstration

उदाहरण:

<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 है, तो आप अंतराल को साफ़ करने के लिए केवल स्पष्ट अंतराल (1) का उपयोग कर सकते हैं। तो सेटिंग बॉब को नल में उपयोग करने का आपका तरीका यह करने का एक अच्छा तरीका है। बस यह सुनिश्चित करें कि बॉब 0% होने पर सही नहीं होता है: डी

संबंधित मुद्दे