动态函数调用不会改变

时间:2014-08-10 18:15:11

标签: javascript jquery

我有这个jsfiddle,我试图使用对象键调用不同的函数。

  var LaneWizard = {
    targets: {
      Lane: $('.lane-colors span'),
      AltLane: $('.alt-lane-colors span')
    },
    prepTargets: function() {
      for(var t in LaneWizard.targets) {
        LaneWizard.targets[t].on('click', function() {
          LaneWizard['change'+t+'Color']($(this));
        });
      }
    }
  }

在该示例中,有两(2)个同心圆。外圈应由第一行(车道颜色)控制,内圈由第二行(备用车道颜色)控制。

我无法弄清楚为什么他们都在改变内圈的颜色。

1 个答案:

答案 0 :(得分:1)

值't'始终具有最后一个值。 做这样的事情:

prepTargets: function() {
  for(var t in LaneWizard.targets) {
    LaneWizard.attachClick(t);
  }
},
attachClick: function(t) {
  LaneWizard.targets[t].on('click', function() {
    LaneWizard['change'+t+'Color']($(this));
  });
}