Il arrive parfois de vouloir changer dynamiquement l'attribut onlcick d'un élément HTML. Supposons que l'on veuille attribuer la fonction suivante au clic sur un élément :
function newFunction() {
alert('Hello World !');
}
L'astuce est qu'il ne faut pas passer une chaîne de caractère, ou un appel à la fonction, mais un pointeur vers celle-ci ! Ainsi, les deux notations suivantes sont fausses :
element.onclick = newFunction(); // faux
element.onclick = 'newFunction();'; // faux aussi !
La bonne manière de faire est :
element.onclick = newFunction;
Cependant, on ne peux pas passer d'arguments à notre fonction en procédant de cette manière. Il faut alors passer par une "fonction anonyme" :
function newFunction2(name) {
alert('Hello ' + name + ' !');
}
element.onclick = function () {
newFunction2('World');
}