我有一个mootools倒计时here,但看起来不行
我在CountDown.js第36行(Uncaught ReferenceError: PeriodicalExecuter is not defined
)
this.timer = new PeriodicalExecuter(this.update.bind(this), (this.options.frequency || 1000) / 1000);
班级PeriodicalExecuter
似乎不包含在mootools中。希望有人拥有PeriodicalExecuter
的代码或知道我在哪里可以找到它。
课程PeriodicalExecuter
至少应包含作品stop()
和registerCallback()
以下是CountDown.js的代码供您参考
/*
---
script: CountDown.js
license: MIT-style license.
description: CountDown - a mootools countdown implementation.
copyright: Copyright (c) 2008 Thierry Bela
authors: [Thierry Bela]
requires:
core:1.2.3:
- Events
- Options
provides: [CountDown]
...
*/
var CountDown = new Class({
/*
options: {
onChange: $empty,
onComplete: $empty,
date: null,
frequency: 1000 //define the update frequency (in ms), default to 1000
},
*/
Implements: [Options, Events],
initialize: function (options) {
this.setOptions(options);
if(!this.options.date instanceof Date) this.options.date = new Date(this.options.date);
this.timer = new PeriodicalExecuter(this.update.bind(this), (this.options.frequency || 1000) / 1000);
},
stop: function () {
this.timer.stop();
return this
},
start: function () {
this.timer.registerCallback();
return this
},
update: function () {
var millis = Math.max(0, this.options.date.getTime() - new Date().getTime()),
time = Math.floor(millis / 1000),
stop = time == 0,
countdown = {
days: Math.floor(time / (60 * 60 * 24)),
time: time,
millis: millis
};
time %= (60 * 60 * 24);
countdown.hours = Math.floor(time / (60 * 60));
time %= (60 * 60);
countdown.minutes = Math.floor(time / 60);
countdown.second = time % 60;
this.fireEvent('onChange', countdown);
if(stop) {
this.timer.stop();
this.fireEvent('onComplete');
}
}
});
修改
我正在使用Mootools版本1.4.5兼容性
答案 0 :(得分:1)
您可以更改类代码以使用标准方法。
看起来.registerCallback
只是一个启动计时器的函数,即。 setInterval
。
显然.stop
会停止计时器,即。 clearInterval
。
PeriodicalExecuter
类似乎唯一要做的就是每次都将实例化时给出的参数传递给setInterval
调用。
这是关于自己实施它的足够信息:)
答案 1 :(得分:0)
https://code.google.com/p/pspygear/source/browse/trunk/trunk/PspyGear/html/osgata/scripts/PeriodicalExecuter.js?r=114
最后,我在上面的网站找到了js文件