使用 jquery 的 setInterval 函数导致 "blink"

setInterval function using jquery is causing a "blink"

使用 jQuery 的个人项目。

我正在尝试创建一个 运行 整点 5 秒 的函数。我通过获取当前会议记录并在它们处于“00”时采取行动来完成此操作。 (虽然为了测试需要手动将分钟更改为 下一 分钟,除非你想等一个小时才能再次看到它 运行。)

函数作用于2个objects,一个作用于add/remove一个class,另一个作用于slideUp/Down.

有效,但在初始 运行ning 之后,slideDown/Up jQuery 在当前分钟的剩余时间内每 5 秒“闪烁”一次。

我已经尝试将 setInterval 设置为 5000,但这并没有解决问题。我真是无计可施了。

虽然我也在别处使用moment.js。此函数未使用 moment()。主要是因为我也无法获得与 moment() 一起使用的功能。

只需前往....

jsFiddle example

记得将 =='00' 设置为 下一 分钟 -- 确保让测试更容易 I 真的 感谢任何等待这个 运行 的人。我知道必须等待一分钟才能看到工作中的功能可能会很痛苦。

如果您观看函数 运行 5 秒,它 停止...但继续观看.. slideDown() 将每 5 秒重复一次秒,直到分钟不再是 XX

我怎样才能停止这种重复?

谢谢!

信不信由你,我在发布后不久就对它进行了排序。

我的条件不成立,我想我什么都试过了。猜不到。

这个有效

if((mins == "29") && (secs <= '05')) {

          $('#focus').slideDown(500);
          $('.projcnt').addClass('jump');

     } else {

          $('#focus').slideUp(300);
          $('.projcnt').removeClass('jump');

     }

还有...

working, updated fiddle

有两个地方需要修复。

1.错过 'clearInterval' 的用法
clearInterval参数为setInterval()方法返回的定时器ID。 参考此 link,w3c 对 clearInterval 的定义。

var intervalId = setInterval(function() { alarm(); }, 5000);
...
clearInterval(intervalId );

2。 secs >= "05" 条件错误
将字符串“05”更改为 int 5。