如何在使用javascript生成的anchor标记上添加onclick事件

how to add onclick event on anchor tag that is generated with javascript?

本文关键字:anchor 添加 事件 onclick javascript      更新时间:2023-09-26

我只使用javascript,不使用jQuery或不使用其他javascript框架。

我创建了一个锚标签,如:

var _a = document.createElement('a');

现在我想为这个标签添加onclick。我尝试过以下内容:

_a.onclick = function(){ mycode(id); }

函数应用于此,但锚标记是在循环中创建的。。。因此CCD_ 1总是取循环的最后一个值。

有人能帮我吗?

尝试以下操作:

_a.onclick = (function(id){return function(){ mycode(id); }})(id);

您可能需要一个函数来创建这样的处理程序:

function createHandler( id ) {
  return function(){ mycode( id ); };
}

然后在环路内分配

for ( i= ... ) {
   _a.onclick = createHandler( i );
}

另一方面,您可能应该使用addEventListener()(MDN-docu)向元素添加事件:

_a.addEventListener( 'click', createHandler( i ) );
for(var id = 0; id < 10; id++){
    var _a = document.createElement('a');
    _a.onclick = (function(id){
        return function (){
            mycode(id);
        }
    })(id);
}

这应该可以解决问题。