2017-10-31 14 views
0

myFunctionという名前のドキュメント上に読み込む関数を設定しました。内部には、タイムアウトの異なる5つの関数があります。私は、id #btnでHTMLコード内のボタンをクリックすると、3番目と4番目の関数のclearTimeoutにします。ここでグローバル関数内の関数のタイムアウトを無効にする

<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が値を返すのSetTimeout

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

コードの残りの部分があるが? HTMLはどこにありますか? –

+0

ご迷惑をおかけして編集をやり直してください – Anurag

答えて

1

から

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 

タイムアウトをクリアするには、次の参照を保持する変数に割り当てる必要があります。あなたのボタンから

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); 
} 

コールmyClearFunction()第3及び第4のタイマをクリアする:ここでは一例です。

1

を下回っている私のコードで、タイマー3および4のためにそれを保存し、クリックボタンの上にそれらをキャンセル]をクリックします。 3-4の値がclearを呼び出す前に定義されているかどうかを確認してください。 https://www.w3schools.com/jsref/met_win_settimeout.asp

2

これにはclearTimeoutを使用できます。ここでは、機能のデモです:

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>

関連する問題