0

定义javascript函数时是否可以使用变量的当前值?在下面的代码中,我想向一个 div 数组添加一个 click 函数,每个 div 都有一个不同的值i,即。第一个 div 应该调用setCurrentStyleIndex(0). 目前,他们都调用了调用时的任何值i

对不起,如果这是一个愚蠢的问题。

Step3.populateStyleMenu = function() {
    var stylePopup = $("#stylePopup");
    for(var i = 0; i < Step3.fontStyles.length; i++) {
        var div = $('<div>'+Step3.fontStyles[i][0]+'</div>');
        div.css({
            'font-weight': Step3.fontStyles[i][1],
            'font-style': Step3.fontStyles[i][2],
        })
        div.data('style', Step3.fontStyles[i]);
        div.addClass('personalizePopupItem personalizeStyleItem');


        div.click(function() {
            setCurrentStyleIndex(i);
        });


        stylePopup.append(div);
     }
}
4

2 回答 2

2

尝试创建一个闭包(未测试):

(function (i) {
    div.click(function() {
        setCurrentStyleIndex(i);
    });
})(i);
于 2013-06-04T04:33:07.573 回答
1

是的,您可以执行以下操作:

div.click((function() {
  var inx = i;
  return function() {
    setCurrentStyleIndex(inx);
  }
})());
于 2013-06-04T04:33:17.650 回答