功能在Javascript中不重复?

时间:2015-02-20 15:36:56

标签: javascript jquery function

我在Javascript中有一个功能,我需要每5秒重复一次。

以下是简单的代码:

function myFunk() {
    $('body').addClass('polyonloaded');
    setTimeout(myFunk, 5000);  
}

myFunk();

它运行一次该函数,不再重复它。我的代码出了什么问题?

3 个答案:

答案 0 :(得分:5)

您的代码正在运行;尝试打印一些东西:

function myFunk() {
   $('body').addClass('polyonloaded');
   console.log('hello');
   setTimeout(myFunk, 5000);  
}
myFunk();

问题:由于添加的类总是相同的,所以没有任何反应: 该课程已经添加;它不会再被添加。

如果您想添加,删除,添加,删除,等等,请使用toggleClass

function myFunk() {
   $('body').toggleClass('polyonloaded');
   setTimeout(myFunk, $('body').hasClass('polyonloaded') ? 4000 : 5000);  
}
myFunk();

答案 1 :(得分:2)

似乎工作正常:

function myFunk() {
    console.log('running');
    setTimeout(myFunk, 1000);  
}

myFunk();

http://jsfiddle.net/dem6u89L/

答案 2 :(得分:2)

您必须添加和删除该类。

设置一个添加类的间隔,然后在下一个间隔之前设置一个内部超时等待删除它。

在这里分叉你的: http://codepen.io/snlacks/pen/KwoELp

$(document).ready(function() {
  setInterval( function() {
    $('body').addClass('polyonloaded');
    setTimeout( function(){ 
        $('body').removeClass('polyonloaded');
  }, 4000)}, 5000 );
});