以快速方式使用setTimeout调用函数

时间:2017-11-07 18:24:31

标签: javascript settimeout

我希望div的backgroundColor改变250ms,然后再改回来。为此我在div上使用以下代码:

function keyAnimation(key) {
basicColor = key.style.backgroundColor;
key.style.backgroundColor = "red";
setTimeout(function () {
    key.style.backgroundColor = basicColor;
}, 250);

但是当我快速点击div多次(在250ms内)时它仍然是红色的。 我该怎么编码这样才能在250ms之后回到basicColor?

1 个答案:

答案 0 :(得分:2)

添加一个阻止其他按键的标志:

var running = false;

function keyAnimation(key) {
 if(running) return;
 running = true;

 const basicColor = key.style.backgroundColor;
 key.style.backgroundColor = "red";

 setTimeout(function () {
    key.style.backgroundColor = basicColor;
    running = false;
 }, 250);

}