+ -
当前位置:首页 → 问答吧 → 带参数函数的传递

带参数函数的传递

时间:2010-11-23

来源:互联网

我想用循环控制每个按钮的事件,点击b1的时候输出1,点击b2的时候输出2,如此类推,代码如下:
for(i=1;i<3;i++){
    this["b"+i].addEventListener(MouseEvent.CLICK, f(i));
}
function f(i){
  trace(i);
}
可是代码有错,应该怎么修改才能实现功能?

作者: hihoha   发布时间: 2010-11-23

复制内容到剪贴板
代码:
for (var i:uint=1; i<3; i++) {
    this["b"+i].addEventListener(MouseEvent.CLICK, f(i));
}
function f(i) {
    return function(e){trace(i)};
}
推荐用如下代码:
复制内容到剪贴板
代码:
for (var i:uint=1; i<3; i++) {
    this["b"+i].addEventListener(MouseEvent.CLICK, f);
}
function f(e) {
    trace(e.currentTarget.name.substr(-1));
}

作者: flash023   发布时间: 2010-11-23