为多个创建的元素创建函数

时间:2012-10-04 09:28:23

标签: javascript html

我创造了以下小提琴:

http://jsfiddle.net/cgoddard/eceGc/1/

我想知道需要做什么,以便三个创建的链接中的每一个都会提醒一个数字(即当时i所在的数字)。

1 个答案:

答案 0 :(得分:5)

请参阅更新的小提琴:http://jsfiddle.net/eceGc/2/

var selectorObject = document.getElementById('selector');
for (var i = 0; i < 3; i++) {
   (function(i) {
       /* all code here */
   }(i));
}

将循环体包装成一个闭包(一个自执行的匿名函数),将当前i作为参数传递。

您的代码出现问题的原因是,当触发click事件时,i的值已达到循环内的限制,因此您正在读取该值。


避免这种行为的另一种方法是通常在函数中移动循环内的所有代码,然后在循环内调用该函数(总是将i变量作为参数传递)