2017-10-31 3 views
0

Ich habe eine Funktion festgelegt, die auf Dokument bereit mit dem Namen myFunction lädt. Es gibt 5 Funktionen mit verschiedenen Timeouts. Ich möchte Timeout der 3. und 4. Funktionen löschen, indem ich auf eine Schaltfläche innerhalb meines HTML-Codes mit der ID #btn klicke. Hier ist mein CodeClear Timeout einer Funktion innerhalb der globalen Funktion

<doctype! HTML> 
<html> 
<head> 
<title> 
My Page 
</title> 
<script src="jquery-3.2.1.js"> 
<script src="myScript.js"> 
<script type="text/javascript"> 
$(document).ready(myFunction); 
</script> 
</head> 
<body> 
<button id="btn"> 
</body> 
</html> 

MyScript.js unten ist

function myFunction(){ 
setTimeout(function function1(){ 
// do stuffs 
}, 5000); 
setTimeout(function function2(){ 
// do stuffs 
}, 10000); 
setTimeout(function function3(){ 
// do stuffs 
}, 15000); 
setTimeout(function function4(){ 
// do stuffs 
}, 20000); 
setTimeout(function function5(){ 
// do stuffs 
}, 25000); 
} 
+1

wo ist der Rest des Codes ??? wo ist das HTML ..... lass uns nicht raten –

+0

sorry redigieren Frage erneut – Anurag

Antwort

1

ein Timeout zu löschen, müssen Sie es in einem Variablen zuweisen, die die Referenz hält. Hier ein Beispiel:

var t1,t2,t3,t4,t5; 

function myFunction(){ 
    t1 = setTimeout(function function1(){ 
    // do stuffs 
    }, 5000); 
    t2 = setTimeout(function function2(){ 
    // do stuffs 
    }, 10000); 
    t3 = setTimeout(function function3(){ 
    // do stuffs 
    }, 15000); 
    t4 = setTimeout(function function4(){ 
    // do stuffs 
    }, 20000); 
    t5 = setTimeout(function function5(){ 
    // do stuffs 
    }, 25000); 
} 

function myClearFunction(){ 
    clearTimeout(t3); 
    clearTimeout(t4); 
} 

Anruf myClearFunction() von Ihrer Taste, um den dritten und vierten Timer zu löschen.

1

SetTimeout einen Wert zurückgibt, speichern die für Timer 3 und 4 und dann auf Klick-Taste klicken, um diese abzubrechen. Stellen Sie sicher, dass die Werte für 3-4 definiert sind, bevor Sie sie löschen.

Return Value: A Number, representing the ID value of the timer that is set. Use this value with the clearTimeout() method to cancel the timer 

von https://www.w3schools.com/jsref/met_win_settimeout.asp

2

Sie können hierfür clearTimeout verwenden. Hier ist eine funktionsfähige Demo:

var timer1 = setTimeout(function() { 
 
    console.log('timer1'); 
 
}, 5000); 
 
var timer2 = setTimeout(function() { 
 
    console.log('timer2'); 
 
}, 10000); 
 
var timer3 = setTimeout(function() { 
 
    console.log('timer3'); 
 
}, 15000); 
 
var timer4 = setTimeout(function() { 
 
    console.log('timer4'); 
 
}, 20000); 
 
var timer5 = setTimeout(function() { 
 
    console.log('timer5'); 
 
}, 25000); 
 

 
document.getElementById('x').addEventListener('click', function() { 
 
    clearTimeout(timer3); 
 
    clearTimeout(timer4); 
 
});
<button id="x">Stop Timer 3 and 4</button>

Verwandte Themen