2013-04-15 6 views
72

HTML & JSappel deux fonctions de même onclick

Comment appeler 2 fonctions d'un événement onclick? Voici mon code

<input id ="btn" type="button" value="click" onclick="pay() cls()"/> 

les deux fonctions étant la rémunération() et cls(). Merci!

+24

Bonjour le point-virgule, cher terminateur de déclaration. 'payer(); cls() ' – elclanrs

+3

Ce qui est à l'intérieur de vos citations est juste javascript. Séparez les instructions java en utilisant un point-virgule. c'est-à-dire: 'pay(); cls(); ' – Kyle

Répondre

128

Ajouter des points-virgules ; à la fin de la fonction des appels pour que les deux au travail.

<input id="btn" type="button" value="click" onclick="pay(); cls();"/> 

Je ne crois pas que le dernier est nécessaire mais bon, pourrait tout aussi bien ajouter pour faire bonne mesure.

Voici une bonne référence de SitePoint http://reference.sitepoint.com/html/event-attributes/onclick

14

Vous pouvez appeler les fonctions à l'intérieur une autre fonction

<input id ="btn" type="button" value="click" onclick="todo()"/> 

function todo(){ 
pay(); cls(); 
} 
+6

Cela fait plus d'un an depuis cette réponse, et seulement maintenant j'ai remarqué que nous avons posté la même réponse presque en même temps (mais tu m'as battu d'une minute, donc j'ai mon +1). – Renan

29

Vous pouvez créer une seule fonction qui appelle les deux personnes, puis l'utiliser dans l'événement.

function myFunction(){ 
    pay(); 
    cls(); 
} 

Et puis, pour le bouton:

<input id="btn" type="button" value="click" onclick="myFunction();"/> 
+2

cela peut être fait, mais il me semble que ce n'est pas si transparent ou il pourrait être nommé similaire à quelque chose comme funtion1_function2(), dans le cas où les funcitons ne sont pas liés. – Muflix

4

Essayez cette

<input id ="btn" type="button" value="click" onclick="pay();cls()"/> 
7

Avec jQuery:

jQuery("#btn").on("click",function(event){ 
    event.preventDefault(); 
    pay(); 
    cls(); 
}); 
5
onclick="pay(); cls();" 

Cependant, si vous utilisez une déclaration de retour en fonction « payer » l'exécution arrêtera et « cls » ne seront pas exécutés,

une solution à ceci:

onclick="var temp = function1();function2(); return temp;" 
5

Mettez un point-virgule entre les deux fonctions comme terminateur d'instruction.

6

Les événements de liaison de html ne sont PAS recommandés. C'est la manière recommandée:

document.getElementById('btn').addEventListener('click', function(){ 
    pay(); 
    cls(); 
}); 
Questions connexes