Javascript每秒都有模数?

时间:2013-03-04 14:59:14

标签: javascript jquery counter modulus

我有一个功能,每次幻灯片放映幻灯片时都会触发,并递增计数器。

我想要一种简单的方法来调用每个X幻灯片的函数(示例代码中为5)。我意识到我可以使用模数轻松地做到这一点,但语法让我感到厌烦。

 var numSlides = $('.item').length; // 20
 var currSlide = 0;
 var ad_interval = 5;

 function updateSlide (){ 
    currSlide++
    // if we are at the ad interval, every 5 slides, call the next line
     $("#adslot").reveal();

 }

5 个答案:

答案 0 :(得分:2)

if (currSlide % ad_interval === 0) {
    // Note that this will also include the first (0th) slide.
}

答案 1 :(得分:2)

Mod返回余数......当它为0时,你已经计算了间隔的数量。

if((currSlide % ad_interval) === 0) {
   $('#adslot').reveal();
}

答案 2 :(得分:1)

在updateSlide()方法中,您可以包含以下内容:

if(currSlide % ad_interval === 0)
{
     // Run method code.
}

这将每5张幻灯片运行一个方法。有关Java运算符和模运算符的更多信息,this site可以很好地解释它们。

答案 3 :(得分:1)

你正在寻找这个吗?

if (currSlide%5 ==0) {
  $("#adslot").reveal();
 }

答案 4 :(得分:1)

我建议:

function updateSlide (){
    // if we are at the ad interval, every 5 slides, call the next line
    if ((currSlide + 1) % ad_interval == 0){
        $("#adslot").reveal();
    }
    currslide++;
}

我使用(currSlide + 1) % ad_interval的原因仅仅是因为您的索引从零开始,而第五张幻灯片位于索引4,而不是5; +1只是确保第五张幻灯片的模数为0 ,而不是第六张幻灯片。

这也会阻止第一张第0张幻灯片显示广告。