我有以下Javascript功能。简单地说,它可以在两页之间交替显示"每10秒钟一次。
cs1.toggleDiv = function()
{
var cs1timeout = setTimeout(function ()
{
$(".page1").hide();
$(".page2").show();
var cs1timeout = setTimeout(function ()
{
$(".page1").show();
$(".page2").hide();
cs1.toggleDiv();
}, 10000);
}, 10000);
console.log(cs1timeout);
}
但我正在寻找一种在按下按钮时暂停此功能的方法。
类似于:
cs1.pauseToggleDiv = function()
{
$('#PauseDiv').on('click',function()
{
clearTimeout(cs1timeout);
//RESTART THE TIMEOUT IF CLICKED AGAIN
})
}
我已经看到clearTimeout
的某些内容,但无法看到如何应用它。
2016-02-24 12:42上面的代码更新以回应
答案 0 :(得分:2)
setTimeout()
函数返回一个ID。试试这个并检查你的控制台:
var myTimeoutId = setTimeout(function() {
console.log('do stuff');
}, 1000);
console.log(myTimeoutId); // should output a number
现在,如果您将该ID传递给clearTimeout()
函数,则会将其删除:
clearTimeout(myTimeoutId);
注意:为了能够使用clearTimeout()方法,您必须使用 创建超时方法时的全局变量:
这意味着您必须将 myTimeoutId 作为全局变量才能使此方法正常工作
答案 1 :(得分:1)
您需要将超时函数保存在变量中才能使用window.clearTimeout(timeout)方法。
类似的东西:
var timer = setTimeout(function () {
$(".page1").hide();
$(".page2").show();
setTimeout(function (){
$(".page1").show();
$(".page2").hide();
cs1.toggleDiv();
}, 10000);
}, 10000);
当你想要停止它时,你可以打电话
window.clearTimeout(timer);