Javascript,以编程方式添加onclick事件

nid*_*dhi 17 javascript events javascript-events

如何以编程方式在HTML中为标记添加onclick事件?

我希望能够单击一个链接,并将附加到javascript函数的onclick事件在另一个标记上生效.

这是我到目前为止:

var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount); 
var cell1 = row.insertCell(0); 
var element1 = document.createElement("input");
element1.type = "text";
element1.id="List["+num+"].id";
element1.name="List["+num+"].id";
element1.onclick="javascript:CalCal()";
cell1.appendChild(element1);
Run Code Online (Sandbox Code Playgroud)

我想CalCal()在onClick事件上调用一个javascript函数.这可能吗?

mik*_*ike 28

但请记住,addEventListener仅从版本9开始支持IE.要支持旧版本的IE,您可以使用类似的东西:

if (element1.addEventListener) {  // all browsers except IE before version 9
  element1.addEventListener("click", CalCal, false);
} else {
  if (element1.attachEvent) {   // IE before version 9
    element1.attachEvent("click", CalCal);
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 在这种情况下,你必须使用这样的匿名函数替换```addEventListener```和```attachEvent```中的`````CalCal```:```function(){CalCal(yourParameter); }``` (3认同)

Dan*_*scu 12

是的,您可以在javascript中以编程方式添加onclick事件,如下所示:

element1 = document.getElementById("your_tag_id");
element1.addEventListener("click", CalCal)
Run Code Online (Sandbox Code Playgroud)

这会将onClick事件附加到id ="your_tag_id"的标记.

您还可以删除onclick事件,如下所示:

element1.removeAttribute("click");
Run Code Online (Sandbox Code Playgroud)

更多信息,访问https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener