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()我真的很抱歉,lndy的答案真的更好。我们都可以从他的回答中学到一些东西。他的设计方法很好。您的解决方案将在第一次调用后每秒调用回调,我认为这是OP的不良行为。我更新了解决方案,现在它不会在第一次调用后每秒调用回调。