Javascript检查一段时间内是否没有发生某些事情

Javascript check if something doesn't happen over a period of time

本文关键字:一段时间 检查 是否 Javascript      更新时间:2023-09-26
var myVar = uncontrollableNumber;
$("#myButton").click(function(){
    myVar++;
});

有没有办法检查"如果 myVar 在 20 秒内没有改变(可以上升或下降,代码只是一个示例),做某事,如果它确实改变了,则重新启动倒计时"?我尝试了一些代码,但失败了。

function myFunction(myVar){
    var oldMyVar = myVar;
    while(oldMyVar === myVar){
        var countdownDone = false;
        //countdown then run function
        countdownDone = true;
    }
if(!countdownDone){
    myFunction();
}

这是一个适合您的工作JS小提琴。

还添加代码片段

var myVar = 0;
var oldVar = 0;
$("#myButton").click(function(){
    myVar++;
});
setInterval(function(){  
  checkForChanges(); // after every 2 secs check
  oldVar = myVar; // reset the old value now to the new one, so during next check we should have our myVar changed.
},2000);
function checkForChanges(){
  if(oldVar === myVar){
  $('#response').append('same value nothing has changed!!'+'<br/>');
    //alert('same value nothing has changed!!');
  }
  else{
  $('#response').append('The value changed!!'+'<br/>');
   //alert('The value changed!!');
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="myButton">
 click Me For Change!!
</button>
<div id="response">
</div>

为了在变量更改时触发事件,您应该使用

 object.watch

有关详细信息,请参阅 - 侦听 JavaScript 或 jQuery 中的变量更改