web-dev-qa-db-fra.com

Javascript, ajouter un événement onclick par programme

Comment ajouter un événement onclick à une balise en HTML par programmation?

Je veux pouvoir cliquer sur un lien et faire en sorte qu'un événement onclick attaché à une fonction javascript prenne effet sur une autre balise.

Voici ce que j'ai jusqu'à présent:

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

Je souhaite appeler une fonction javascript CalCal() lors d'un événement onClick. Est-ce possible?

18
nidhi

Mais gardez à l'esprit que addEventListener est pris en charge dans IE uniquement à partir de la version 9. Pour prendre en charge les anciennes versions de IE vous pouvez utiliser quelque chose comme ça :

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);
  }
}
28
mike

Oui, vous pouvez ajouter un événement onclick par programme en javascript comme ceci:

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

Cela attache un événement onClick aux balises avec id = "your_tag_id".

Vous pouvez également supprimer l'événement onclick comme ceci:

element1.removeAttribute("click");

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

12
Dan Dascalescu

Essayer

element1.onclick=CalCal;

au lieu:

element1.onclick="javascript:CalCal()";
1
IProblemFactory