我设置了一个函数,该函数可在名称为myFunction的文档上加载。其中有5个函数,它们具有不同的超时时间。我想在ID为#btn的html代码中单击按钮时清除第3和第4个函数的超时。这是我的代码

<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在下面

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

最佳答案

要清除超时,必须将其分配给保存引用的变量。这是一个例子:

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()以清除第三和第四计时器。

09-11 18:26
查看更多