2012-11-05 13 views
12

Come si aggiunge un evento onclick a un tag in HTML a livello di programmazione?Javascript, aggiungere evento onclick a livello di codice

Desidero poter fare clic su un collegamento e fare in modo che un evento onclick collegato a una funzione javascript abbia effetto su un altro tag.

Ecco quello che ho finora:

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

voglio chiamare una funzione javascript CalCal() sull'evento onclick. È possibile?

+0

provato ad utilizzare 'jQuery', la vostra vita sarà molto più facile: D – nXqd

risposta

22

Ma tenere a mente che addEventListener è supportato in IE solo dalla versione 9. Per supportare le vecchie versioni di IE si potrebbe usare qualcosa di simile:

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

ho bisogno di passare anche il parametro .. come posso? – nidhi

+0

in questo caso devi sostituire '' 'CalCal''' dentro' '' addEventListener''' e '' 'attachEvent''' con una funzione anonima come questa:' '' function() {CalCal (yourParameter); } '' ' – mike

+0

+1 per la soluzione di compatibilità IE, esattamente ciò di cui avevo bisogno! – Enrico

10

Sì, è possibile aggiungere un evento onclick di programmazione in JavaScript come questo:

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

Ciò attribuisce un evento onClick ai tag con id = "your_tag_id".

È possibile anche rimuovere l'evento onclick in questo modo:

element1.removeAttribute("click"); 

Altro https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener

0

Prova

element1.onclick=CalCal; 

invece:

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

non funziona ... – nidhi

+3

element1.onclick = function() {CalCal();} dovrebbe essere la sintassi corretta qui. – fiacobelli

+0

No, 'CalCal' è solo una funzione di riferimento, e farebbe anche riferimento alla funzione che crea anonimo' function() {} '. – IProblemFactory

Problemi correlati