esa*_*kwn 4 javascript jquery timer
编辑:当我调用Clock.start()时,如何传递参数,以便我可以更改totalSeconds的值?
我有一个计数器,其值与计时器显示的ID连接,因为页面上会有多行计时器,但只有一行会为每个用户运行.我想传递定时器的值,所以我知道我应该获取的定时器在哪一行,然后我将其转换为秒,然后我最终可以将该值分配给totalSeconds.那么也许我可以按照我想象的方式来实现这一点.
我已经跑过的东西:我有一个计时器,除非我刷新,否则它不会显示它正在计数.当页面加载PHP查询mySQL并使用TIMEDIFF(now(),time_log)计算已用时间,其中time_log是计时器启动时的时间.
我想要添加的内容:我想要做的是使用下面的js/jquery片段获取我的TIMEDIFF然后将其用作totalSeconds,因此totalSeconds不会重置并继续从TIMEDIFF值开始向上计数.
var Clock =
{
totalSeconds: 0,
start: function () {
var self = this;
this.interval = setInterval(function () {
self.totalSeconds += 1;
var ctr;
$(".icon-play").each(function(){
if( $(this).parent().hasClass('hide') )
ctr = ($(this).attr('id')).split('_');
});
$("#hour_" + ctr[1]).text(pad(Math.floor(self.totalSeconds/3600)));
$("#min_" + ctr[1]).text(pad( Math.floor((self.totalSeconds/60)%60) ));
$("#sec_" + ctr[1]).text(pad(parseInt(self.totalSeconds%60)));
}, 1000);
},
pause: function () {
clearInterval(this.interval);
delete this.interval;
},
resume: function () {
if (this.interval) this.start();
}
};
Run Code Online (Sandbox Code Playgroud)
对于这个剧本,信用给Speransky Danil先生.如何暂停和恢复计时器?
您应该记录开始时间并计算从现在到启动计时器之间的秒数,而不是记录总秒数.
此外,您已经将开始时间存储在数据库中,因此您可以在页面加载时从中初始化.
如果您只计算秒数,则会缩短页面刷新之间的时间.
编辑:您可以在PHP生成的HTML输出中初始化Clock.totalSeconds.我知道你已经有这个时钟JS工作(上面没有发布标记).
<script type="text/javascript">
var Clock = {}; // your code above
Clock.totalSeconds = <?php echo (int)$seconds; ?>;
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3036 次 |
| 最近记录: |