2010-01-13 2 views
1

Je me demandais s'il était possible d'utiliser Javascript pour changer la fonction/méthode qu'un élément HTML appelle.Utiliser Javascript pour changer la méthode/fonction d'un élément HTML appelle

Exemple:

<input type="button" id="some_id" name="some_name" value="A Button" onclick="someFunction()" /> 

Je veux maintenant utiliser Javascript pour changer la méthode/fonction appelée sur l'événement onclick à une autre fonction a affiché ci-dessous.

<input type="button" id="some_id" name="some_name" value="A Button" onclick="anotherFunction()" /> 

J'ai essayé d'utiliser innerHTML, et quand j'ai vérifié le code HTML généré, il en fait changé la valeur de l'événement onclick sur le bouton, mais quand je clique sur le bouton, la méthode est pas appelée.

Merci d'avance.

Répondre

3

Vous pouvez affecter un objet fonction directement au champ onclick de l'élément. Par exemple,

var inp = document.getElementById('some_id'); 
inp.onclick = anotherFunction; 
+0

essayé mais n ne fonctionne pas. – IndexController

+0

Définir "ne fonctionne pas". C'est la manière standard d'affecter des gestionnaires d'événements en JavaScript brut. – friedo

+0

lors de l'attribution d'une autre fonction à l'événement onclick, elle exécute la fonction immédiatement, ce qui n'est pas ce que je veux. Je veux que la fonction soit exécutée onclick de l'élément – IndexController

1

En utilisant jQuery vous pouvez faire:

$('#some_id').unbind('click'); 
$('#some_id').click(function() { 
    anotherFunction(); 
}); 
+0

Ah, vous avez totalement raison. Vous devez d'abord le libérer. Merci, je ne l'avais pas réalisé :) – wprl

+0

Les collisions de commentaires - J'ai supprimé mon commentaire original après avoir modifié. +1 pour jQuery * mais * Je ne pense pas non plus que ce développeur devrait l'utiliser pour le moment - il serait probablement mieux d'apprendre les bases en premier – Graza

Questions connexes