在jquery中使用条件和依赖关系减少和简化代码?

时间:2013-07-04 19:48:34

标签: jquery

滑块中使用了一系列图像。一个接一个是活跃的和可见的。并且有一个clickcounter,女巫与滑块没有关系。只有当点击计数器具有特定值时,在第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有明确的关系。 clickcounter总是与第二个乘数相同的值减去1.我不知道如何在一个页面中写出这个shoud,而不是为每个第5个图像重新划线。有人可以给我一个提示吗? THX

3 个答案:

答案 0 :(得分:0)

您可以使用remainder运算符:

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

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

答案 1 :(得分:0)

您可能想尝试模块划分:

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

instance的索引除以num,当所述索引是num的倍数时,余数为0。索引再次除以num,然后结果少一个得到countCalc值。

答案 2 :(得分: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建议的