2012-11-05 188 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

相關問題