javascript setTimeout在if语句中不起作用

时间:2019-06-27 14:05:20

标签: javascript settimeout

我正在编写代码以在用户闲置一段时间后提醒用户不活动。

setIdleTimeout = () => {

  var timeout = 0;
  timeout = setTimeout(onExpires, 500);

  //Expires Function
  function onExpires() {
    timeout = 0;
    alert('Timed out');
  }

  //This function executes on each mouse move.
  function onMouseActivity(event) {
    clearTimeout(timeout);
    timeout = setTimeout(onExpires, 500);
  }
}

上面的代码工作正常。但是,每当我向clearTimeout添加条件时,它就无法正常工作。

示例:

//This function executes on each mouse move.
function onMouseActivity(event) {
  var mouseSeconds =5
  if(mouseSeconds < 10) {
  //Now this is not working.
  clearTimeout(timeout);
  }
  timeout = setTimeout(onExpires, 500);
}

请帮帮我。这让我快疯了几个小时。 谢谢。

1 个答案:

答案 0 :(得分:1)

您写了

var mouseSeconds =5
  if(mouseSeconds > 10) {
  //Now this is not working.
  clearTimeout(timeout);
  }

mouseSeconds为5,它将永远不会大于10 :),因此该语句始终为假。