使用jquery的setInterval函数导致"闪烁"

时间:2016-02-23 05:19:40

标签: javascript jquery setinterval

使用jQuery的个人项目。

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

该函数作用于2个对象,一个用于添加/删除一个类,另一个用于slideUp / Down。

它可以工作,但是在初始运行之后,slideDown/Up jQuery会导致"闪烁"当前剩余时间每5秒钟。

我已尝试为setInterval设置5000,但这还没有解决问题。我真的在我的智慧结束了。

虽然我也在其他地方使用moment.js。此功能不使用moment()。主要是因为我还没有能够使用moment()功能。

直接前往....

jsFiddle example

请务必将=='00'设置为 next 分钟 - 确保让测试更轻松真的感谢所有等待此事的人跑步。我知道等待一分钟才能看到工作中的功能可能会很痛苦。

如果您观看该功能运行5秒钟,它停止...但继续观看...... slideDown()将每5秒重复一次,直到分钟不再为{{ 1}}。

如何阻止此重复?

谢谢!

2 个答案:

答案 0 :(得分:1)

有两个地方需要修复。

<强> 1。错过了使用&#39; clearInterval&#39;     
clearInterval参数是setInterval()方法返回的计时器的ID。     引用clearInterval的这个link,w3c定义。

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

<强> 2。 secs&gt; =&#34; 05&#34;条件错误     
更改字符串&#34; 05&#34;到第5页。

答案 1 :(得分:0)

信不信由你在发布之后我将它分类了一会儿。

我的条件是关闭的,我以为我尝试了一切。猜不是。

这有效

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

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

     } else {

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

     }

而且......

working, updated fiddle

相关问题