Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript js:在暂停/恢复后触发计时事件_Javascript - Fatal编程技术网

Javascript js:在暂停/恢复后触发计时事件

Javascript js:在暂停/恢复后触发计时事件,javascript,Javascript,我想在特定时间后触发一些事件。计时器应该是可暂停的。 代码如下: 问题是我怎样才能触发它 if (Clock.totalSeconds >= givenTime){ alert('time is up!'); } 我把它放在文档中。就绪。但它不会在时机成熟时被解雇。我认为问题在于该函数根本没有被调用。如果是这样,我如何触发它?您可以将回调函数maxTime传递给Clock.start(),该函数将在延长给定时间后释放 var givenTime = 5; //maxTi

我想在特定时间后触发一些事件。计时器应该是可暂停的。 代码如下:

问题是我怎样才能触发它

  if (Clock.totalSeconds >= givenTime){
    alert('time is up!');
  }

我把它放在
文档中。就绪
。但它不会在时机成熟时被解雇。我认为问题在于该函数根本没有被调用。如果是这样,我如何触发它?

您可以将回调函数
maxTime
传递给
Clock.start()
,该函数将在延长给定时间后释放

var givenTime = 5;
//maxTime is call back function which is executed after extend giventTime
Clock.start(maxTime, givenTime);

function maxTime(){
   //do stuff after extend maximum time.
}

//here is your call back function is invoked when `givenTime` time is extended
// inside the `start function`
//after that every second the call back function is executed.

if(self.totalSeconds >= givenTime){
     callBack();
}
这是完整的

如果您想只执行一次timeup代码。然后您可以在
start()
函数中设置codinition,如

if(self.totalSeconds == givenTime){
if (!this.interval) this.start(maxTime, givenTime)

更新

在您的情况下,请通过删除var将变量
giventTime
设置为全局变量,并从
$(文档)外部放置
maxTime()
函数。就绪

$( document ).ready(function() {...});

function maxTime(){
       alert('time up');
    }
并使用
start()
函数将相关参数传递到
resume()
函数中,如

if(self.totalSeconds == givenTime){
if (!this.interval) this.start(maxTime, givenTime)

您的方法不起作用,因为if语句只计算一次;在文件加载时。要解决这个问题,您需要添加回调,每次更新totalSeconds时都会检查回调

这是我的解决方案

您可以使用
时钟添加函数。在(时间,回调)
,如下所示:

Clock.at(10,function(){/*10秒过去了*/})


每次
setInterval
更新
totalSeconds
时都应调用If语句,因此将其放入
setInterval
函数中。您可以将给定的时间作为参数传递给start函数。


您的解决方案将在第一次调用后每秒调用一次回调,并且只允许一次回调。我假设这对于OPAn附加问题是不可取的:在
resume
函数中,参数应该为空?
如果(!this.interval)this.start()