内部循环中的匿名函数,仅输出循环的最后一个值(i)

时间:2015-11-20 14:39:16

标签: javascript loops closures contextmenu anonymous-function

我需要创建一个上下文菜单(右键单击),在此菜单中我想显示3个颜色标签。当用户单击标签时,光标下方的div会更改其背景颜色。

为了达到这个目的,我宣布了一个内部函数,但是它只输出最后一种颜色,(i的最后一个值)。

当循环创建所有函数时,如何使'i'的值在匿名函数中保持不变?

代码:

for (var i = 0; i < items.length; i++) {                                
        menu.append(new gui.MenuItem({ 
            label: items[i].name,                
            click :  function(){
            //context.css({background: items[i].color});    
                console.log(i); // <-- I get 6 all the time when a label is clicked                                                 
            }
    }));
}   

0 个答案:

没有答案