2012-11-05 134 views
12

如何以编程方式向HTML中的标记添加onclick事件?以编程方式添加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); 

我想打电话onClick事件的JavaScript函数CalCal()。这可能吗?

+0

使用'jQuery'尝试,你的生活会容易得多:d – nXqd

回答

22

但是要记住该addEventListener在IE支持刚从版本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); 
    } 
} 
+1

我需要传递参数也..我可以吗? – nidhi

+0

在这种情况下,你必须用'''function(){CalCal(yourParameter);}来替换'''addEventListener''和''attachEvent'''中的'''CalCal''。为IE兼容性解决方案+1,''' – mike

+0

+1,正是我需要的! – Enrico

10

是可以以编程方式在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

0

尝试

element1.onclick=CalCal; 

代替:

element1.onclick="javascript:CalCal()"; 
+0

不工作... – nidhi

+3

element1.onclick = function(){CalCal();}在这里应该是正确的语法。 – fiacobelli

+0

不,'CalCal'只是一个函数引用,你也可以创建匿名'function(){}'函数引用。 – IProblemFactory

相关问题