2013-11-21 38 views
0

我正在尝试制作一个幻灯片,它可以计算div内图像的数量。并为每个图像创建一个可点击的圆圈。使用循环jQuery制作点击事件

这似乎失败代码:

l = heroimgs.length; 
for(var i=0; i<l; i++){ 
    $('#heronavpoint'+i).click(function(){ 
     $('.heroimg:visible').fadeOut(800); 
     $('.heroimg:eq('+i+')').stop().delay(800).fadeIn(); 
    }); 
} 
+0

使用一封... –

+0

[这里是关闭工作](http://conceptf1.blogspot.com/2013/11/javascript-closures.html) –

回答

2

例如,使用一个封闭:

for (var i = 0; i < l; i++) { 
    (function (i) { 
     $('#heronavpoint' + i).click(function() { 
      $('.heroimg:visible').fadeOut(800); 
      $('.heroimg:eq(' + i + ')').stop().delay(800).fadeIn(); 
     }); 
    }(i)); 
} 

在你的情况,你可以使用:

$('[id^=heronavpoint]').click(function() { 
    $('.heroimg:visible').fadeOut(800); 
    $('.heroimg:eq(' + $(this).index() + ')').stop().delay(800).fadeIn(); 
}); 
+0

Thx !不知道除了使用带参数的额外函数外,还有什么不同? –