【JavaScript】给动态生成的链接动态的绑定事件

给动态生成的链接动态的绑定事件,最典型的实现场景是在生成的表格行里点击链接删除这一行。

很多朋友直接就写a.setAttribute("href","javascript:deleteLine("+id+")"); 结果发现多行ID给整成一个了,这样做自然不行。

正确的做法是:

var link=document.createElement("a");

link.onclick=(function(id){

                   return function(){

                          deleteLine(id);

                   }

               }

             )(item.id);

把上面写成一行就是:

link.onclick=(function(id){ return function(){deleteLine(id);}})(item.id);

这样做有些别扭,但只有这样做才能利用闭包在循环结束前保存当前值,如果不这样做,就只会记住最后一个item.id

END

参考资料:

https://www.cnblogs.com/githubMYL/p/8629915.html

原文地址:https://www.cnblogs.com/heyang78/p/15526199.html