25

如何onclick以编程方式将事件添加到 HTML 中的标记?

我希望能够单击一个链接,并使onclick附加到 Javascript 函数的事件在另一个标签上生效。

这是我到目前为止所拥有的:

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);

我想CalCal()onClick事件上调用 Javascript 函数。这可能吗?

4

3 回答 3

33

但请记住,addEventListenerIE 仅从版本 9 开始支持。要支持旧版本的 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);
  }
}
于 2012-11-05T09:37:16.880 回答
13

是的,您可以像这样在 javascript 中以编程方式添加 onclick 事件:

element1 = document.getElementById("your_tag_id");
element1.addEventListener("click", CalCal)

这会将 onClick 事件附加到 id="your_tag_id" 的标签。

您还可以像这样删除 onclick 事件:

element1.removeAttribute("click");

更多在https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener

于 2012-11-05T09:30:02.920 回答
2

尝试

element1.onclick=CalCal;

反而:

element1.onclick="javascript:CalCal()";
于 2012-11-05T09:32:54.257 回答