clearInterval的问题

时间:2015-11-11 02:53:08

标签: javascript setinterval clearinterval

我似乎无法以我认为应该的方式工作clearInterval。我一直在经历这么多其他的例子和问题。在每种情况下,我似乎都在做其他人正在做的事情,除了使用onkeypress。我也尝试过各种其他按键选项而没有运气。而且我也在一堆不同的时间翻转代码无济于事。

以下是我一直在使用的基本代码段,大大简化了大型项目。正如你可能能够辨别出来的那样,我希望它能够继续印刷" poop"直到按键停止它。如果我在打印之前点击按钮" poop"第一次,它将停止并打印"停止大便。"如果我等到它打印出#po;"有一次,我不能用按键来阻止它。

请原谅它的弊端。

function pooping() {
    document.write("poop ");
}

var pooper = setInterval(pooping, 1000);

document.onkeypress = function() {
    clearInterval(pooper);
    pooper = 0;
    document.write("stopped pooping");
}

1 个答案:

答案 0 :(得分:2)

相同的代码,没有document.write()正常工作:

'use strict';

let target = document.getElementById('target');
function pooping() {
    // Normally would use console.log() here, but wanted the result visible
    // in the snippet.
    target.textContent += "poop ";
}

var pooper = setInterval(pooping, 1000);

document.onkeypress = function() {
    clearInterval(pooper);
    pooper = 0;
    target.textContent += "stopped pooping";
}
<div id="target"></div>