js循环添加onClick事件--js的闭包

来源:互联网 发布:select count,sql 编辑:程序博客网 时间:2024/05/19 13:25

错误的写法:

 

 var show= function(str) {
            alert(str);
        }

..............

           for (var i = 0; i < data.length; i++) {
               obj.attachEvent("onclick", function() {
                        show(data[i]);
                    });
                }
           

 

这种写法得到的结果是,添加的所有新行的onclick事件调用时,总是alert出来data最后一个索引]的值,不能正确地把循环中的每一个索引相应的传给每次添加的行


正确的写法则应如下:

...........

  for (var i = 0; i < data.length; i++) {
              obj.onClick=function (str) {
                        return function(){
                            alert(str);
                          };
                          }(data[i]);
                            }
   }


0 0
原创粉丝点击