杀死jquery setTimeout

Sam*_*mer 2 javascript jquery

loading = setTimeout(function(){$("#myDiv").html('3');},1500)
loading = setTimeout(function(){$("#myDiv").html('2');},2500)
loading = setTimeout(function(){$("#myDiv").html('1');},3500)
loading = setTimeout(function(){$("#myDiv").html('Go!');},4500)
Run Code Online (Sandbox Code Playgroud)

我有那个代码,例如,直到某些东西开始倒计时.但是如果用户点击一个名为"停止"的按钮,我希望倒计时停止.我知道clearTimeout,我使用了clearTimeout(加载),但这不起作用.我相信这是因为加载在一秒后重新定义.

谢谢

小智 5

clearTimout无法正常工作,因为您正在重复使用'loading'变量.试试这个:

loading1 = setTimeout(function(){$("#myDiv").html('3');},1500);
loading2 = setTimeout(function(){$("#myDiv").html('2');},2500);
loading3 = setTimeout(function(){$("#myDiv").html('1');},3500);
loading4 = setTimeout(function(){$("#myDiv").html('Go!');},4500);


$("#stop").click(function(e) {
    e.preventDefault();

    clearTimeout(loading1);
    clearTimeout(loading2);
    clearTimeout(loading3);
    clearTimeout(loading4);
});
Run Code Online (Sandbox Code Playgroud)