将参数传递给onchange不会在运行时使用这些参数

时间:2012-11-30 14:39:11

标签: javascript

您好我正在使用功能

function prepareRadios(radioGroupName) {
  var radios = document.getElementsByName(radioGroupName);
  for( i = 0; i < radios.length; i++ ) {
    document.getElementById(radios[i].id).onchange = function() {
      radioUpdated(radioGroupName, radios[i].id); 
    };
  }
}

问题是,onchange事件使用quote(radioGroupName,radios [i] .id)触发,而不是使用我的函数将这些值放入其中

我需要传递它们的值,而不是变量的名称

我做错了什么?

1 个答案:

答案 0 :(得分:2)

这是closure-time:)

function prepareRadios(radioGroupName) {
    var radios = document.getElementsByName(radioGroupName);
    for( i = 0; i < radios.length; i++ ) {
        document.getElementById(radios[i].id).onchange = (function(name, id) {
            return function() { radioUpdated(name, id); }
        })(radioGroupName, radios[i].id);
    }
}