动态创建 onclick 事件锚元素 - Javascript

Posted

技术标签:

【中文标题】动态创建 onclick 事件锚元素 - Javascript【英文标题】:Dynamically create onclick event anchor element - Javascript 【发布时间】:2016-10-04 17:52:41 【问题描述】:

如何在 javascript 的超链接中动态创建 onclick 函数?

这是一个代码 sn-p - 在同一页面内创建多个超链接的 while 循环。我尝试只将 onclick 事件添加到 a 元素,即:

a.onclick=myfunction()

但是,当页面加载了这些链接的列表时,会自动为每个链接调用该函数。

这就是我的代码的样子。我想我应该为每个链接使用 id

  var a = document.createElement('a');
  var linkText = document.createTextNode(child.innerhtml);
  a.appendChild(linkText);
  a.title = child.innerHTML;
  a.href = "#stockContent" + i;
  a.id = "link_id" + i;

  ...

“i”是迭代器变量。

【问题讨论】:

我肯定会养成将 id 放在您想要操作的东西上的习惯。并且只需执行“a.addEventListener('onclick', function(event) do stuff here)”之类的操作。那会奏效。它不会立即执行 - 它只会通过具有事件侦听器来执行“onclick”:)。如果需要,还可以创建自定义事件方法/侦听器。 【参考方案1】:
a.onclick=myfunction()

myfunction的返回值设置为onclick。您想要的是以下内容:

a.onclick=myfunction

【讨论】:

【参考方案2】:

可以通过两种方式指定onclick函数:

1) 使用命名函数:

function myFunction()
  alert('hello');


a.onclick = myFunction;

2) 使用匿名函数:

a.onclick = function() 
  alert('hello'); 
;

【讨论】:

以上是关于动态创建 onclick 事件锚元素 - Javascript的主要内容,如果未能解决你的问题,请参考以下文章

由于 html 锚点中的 onclick 事件导致页面加载缓慢

仍在应用移动设备悬停状态上元素上的onClick事件

带有Javascript onclick事件的HTML锚标记

js动态绑定onclick事件,事件点击多时无响应

如何将变量传递给动态创建的 javascript onclick 函数? [关闭]

如何在zend框架中为dojo动态树创建dojo数据onclick事件以实现程序化方法