javascript - 清除全局函数内函数的超时

标签 javascript jquery function cleartimeout

我已经设置了一个函数,可以加载名为 myFunction 的文档。里面有5个函数,有不同的超时时间。我想在单击 id #btn 的 html 代码中的按钮时清除第三个和第四个函数的超时。这是我的代码

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

关于javascript - 清除全局函数内函数的超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47042359/

相关文章:

javascript - AngularJS 将 css 类添加到父 div

javascript - for 循环增量,小数点停止在 1.42,而不是继续直到计算完成

javascript - 是否可以使用 "call"或 "apply"将参数数组一次传递给多个函数?

javascript - 如何为内联元素创建垂直 jQuery 或 CSS slider

javascript - 如何修改内联函数参数?

javascript - 传递参数的推荐方式是什么?

javascript - 如何在普通 javascript 中使用类触发特定 html 元素上的事件

javascript - 为什么我的过渡动画在关闭 div 时出现故障?

javascript - 在 morris.js 中触发 donut 段的点击事件

javascript - DataTables 加载和渲染延迟