【问题标题】:Dynamically create onclick event anchor element - Javascript动态创建 onclick 事件锚元素 - 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”:)。如果需要,还可以创建自定义事件方法/侦听器。

标签: javascript html onclick href


【解决方案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'); 
    };
    

    【讨论】:

      猜你喜欢
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 2011-10-08
      • 1970-01-01
      • 2019-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多