Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Prototype & Script.aculo.us
Prototype & Script.aculo.us Forum d'entraide sur les frameworks Prototype et Script.aculo.us
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/07/2007, 14h47   #1
Futur Membre du Club
 
Inscription : avril 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 30
Points : 15
Points : 15
Par défaut [Prototype] appel Event observe

Bonjour,

je cherche à lier une action à un bouton en utilisant un appel à un fichier .js et en évitant la saisie d'un onClick dans ma page web exemple :

Code :
1
2
3
4
5
6
7
 
mapage.html
<html>
<script src="fonctions.js" type="text/javascript"></script>
<body>
<input type="button" id="monbouton" value="valider">
...
Code :
1
2
3
4
5
6
7
8
9
 
fonctions.js
 
Event.observe($("monbouton"),"click",mafonction,false);
 
function mafonction(){
 alert("ok, ça marche");
}
...
Le problème est que lorsque je lance ma page html, la fonction "mafonction" est appelé sans que je clique sur mon bouton "monbouton" ! Comment je peut faire pour que ma fonction "mafonction" ne soit appelée que si je clique sur mon bouton "monbouton" ?

Et que signifie le dernier paramètre de Event.observe ? (false)
sorenson2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2007, 17h19   #2
Futur Membre du Club
 
Inscription : avril 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 30
Points : 15
Points : 15
S'il vous plaît ?

Une autre petite question : comment ont fait pour passer des arguments dans ceci :

Code :
1
2
 
Event.observe($("monbouton"),"click",mafonction,false);
sorenson2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2007, 12h49   #3
Futur Membre du Club
 
Inscription : avril 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 30
Points : 15
Points : 15
Bon,

j'ai trouvé une solution, j'écrivais "mafonction" avec des parenthèses dans le Event.observe donc la fonction était appelé au chargement de mon fichier .js.

Cependant, Es-ce que quelqu'un saurait me dire si c'est possible de passer des paramètres comme ceci ?

Code :
1
2
 
Event.observe($("monbouton"),"mouseup",mafonction(unparamètre,deuxparamètres),false)
sorenson2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2007, 22h47   #4
Membre chevronné
 
Inscription : mai 2005
Messages : 657
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 657
Points : 722
Points : 722
Salut,

Citation:
Envoyé par sorenson2
j'écrivais "mafonction" avec des parenthèses dans le Event.observe donc la fonction était appelé au chargement de mon fichier .js.
Si tu nous donne un code différent de celui qui te pose des problèmes, je vois pas bien comment on est censé t'aider


Citation:
Cependant, Es-ce que quelqu'un saurait me dire si c'est possible de passer des paramètres comme ceci ?
Tu peux utiliser une fonction anonyme, comme ceci :
Code :
Event.observe("monbouton", "mouseup", function(event) { mafonction(unparamètre,deuxparamètres); });
Note que j'ai un peu "simplifié" ton code :
- Event.observe comme la plupart des fonctions prototype peuvent prendre un ID directement, donc pas la peine d'utiliser $ pour le premier paramètre.
- Le 4é paramètre de Event.observe est a false par défaut, donc il est utile uniquement si tu veux le mettre a true.
(cf. http://prototypejs.org/api/event/observe)
Taum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 12h02   #5
Futur Membre du Club
 
Inscription : avril 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 30
Points : 15
Points : 15
merci beaucoup !
sorenson2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h10.


 
 
 
 
Partenaires

Hébergement Web