如何在setTimout中返回函数

时间:2018-10-17 18:07:14

标签: javascript settimeout dom-events

我有此代码:

first(1000, function() {
  alert("Hey");
});

function first(t1, a1) {
  var time1 = setTimeout(a1, t1);
  document.onmousemove = document.mousedown = document.mouseup = document.onkeydown = document.onkeyup = document.focus = function() {
    clearTimeout(time1);
    time1 = setTimeout(a1, t1);
  };
}

second(3000, function() {
  alert("hello");
});

function second(t2, a2) {
  var timetwo = setTimeout(a2, t2);
  document.onmousemove = document.mousedown = document.mouseup = document.onkeydown = document.onkeyup = document.focus = function() {
    clearTimeout(timetwo);
    timetwo = setTimeout(a2, t2);
    return first;
  };
}

在此代码中,我收到2条警报:首先是Hey,然后是Hello。但是,只要您能,一旦我移动了鼠标,一切都将重置,但只有Hello。他没有回来,他说嘿。

我需要在移动鼠标时始终返回“嘿”而不是“你好”。骨头到第一个功能。

您知道我该怎么做吗?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以通过以下一项功能来做到这一点:

 document.onmousemove = document.mousedown = document.mouseup = document.onkeydown = document.onkeyup = document.focus = function()

然后是第二个功能:

 document.onmousemove = document.mousedown = document.mouseup = document.onkeydown = document.onkeyup = document.focus = function()

因此,您分配了相同的全局集,然后重新分配了它。改为设置事件监听器