0

有一个滑块中使用的图像列表。一个接一个是活跃的和可见的。还有一个点击计数器,女巫与滑块无关。在第 10 张图片上,然后在每块 5 张图片之后,应该会发生某些事情,前提是点击计数器具有一定的值。在这种情况下,在以下情况下应该发生一些事情:

10th image and clickcounters value is 1
15th image and clickcounters value is 2
20th image and clickcounters value is 3
25th image and clickcounters value is 4
... and so on. 

我的 jquery 看起来像这样。图像被索引:

   var num = 5;
   if (instance.index === num*2 && countCalc == 1 ) {
   do something;
   }
   else if (instance.index === num*3 && countCalc == 2 ) {
   do something;
   }
   else if (instance.index === num*4 && countCalc == 3 ) {
  do something;
   };

如果变量 num ist 设置为 5,则与点击计数器有明确的关系。clickcounter 总是与第二个乘数减 1 相同的值。我不知道应该如何将它写在一个 stament 中,而不是为每 5 个图像重复行。谁能给我一个提示?谢谢

4

3 回答 3

0

您可以使用余数运算符:

var num = 5;
if (instance.index % num === 0) {
    doSomething(countCalc);
}

示例:http: //jsfiddle.net/c4s8X/

于 2013-07-04T20:12:03.583 回答
0

您可能想尝试模块化划分:

if (instance.index % num === 0 && countCalc === instance.index / num - 1) {}

的索引instance除以num,当该索引为num的倍数时余数为0。再次将索引除以 num,然后结果减去 1 为您提供countCalc值。

于 2013-07-04T20:13:45.853 回答
0

我怀疑一个班轮,但尝试深入研究这样的事情:

$("div:nth-of-type(5)")
    .each(function(i, ele) {
        $(ele)
            .data("counter", i)
            .click(function(){
                if ($(this).data("counter") == counter) {
                    // do something
                }
            });
    });

http://jsfiddle.net/KzyfY/1/

不确定您的图像上是否已经有点击事件..所以我在这里分配和测试。也许是这个和@mhu建议的混合

于 2013-07-04T20:21:48.657 回答