begin process at 2012 05 29 19:04:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Javascript

 > 

Archives

 > 

Divers

 > 

[OBJET] Appel d'une méthode sur un évènement


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[OBJET] Appel d'une méthode sur un évènement

mardi 28 février 2006 à 12:34:48 | [OBJET] Appel d'une méthode sur un évènement

malalam

Administrateur CodeS-SourceS
Hello,

bon, je vais tâcher de la faire court.
J'ai une page dans laquelle je définis des objets js.
Puis j'instancie ces objets.
Ensuite, j'ai du html, des boutons, sur lesquels je place des évènements. Dans ces évènements, je tente de faire appel aux méthodes de mes objets.
Malheureusement, ça ne marche pas, mes instances n'existent plus.

Bref ça donne grosso modo ça :
<script type="text/javascript">
function objet1 () {
}

objet1.prototype.start () {
  with (objet1) {
    bla bla
  }
}

objet1.prototype.methodeEvent = function (truc) {
  with (objet1) {
    bla bla
  }
}

obj = new objet1 ();
</script>
<input type="button" id="buttonId" value="click" onclick="obj.methodeEvent('bla');" />
<script type="text/javascript">
obj.start ();
</script>

obj = new objet1 (); fonctionne à merveille.

obj.start (); aussi.

Mais au milieu, le onclick="obj.methodeEvent('bla');" ne passe pas du tout. obj.methodeEvent n'est pas une fonction. Si je ne préfixe pas avec obj, il me dit que methodeEvent est indéfini.

 Je voudrais, si possible : une explication (histoire de pas mourir bête), et une solution (tant qu'à faire ;-) ).

Merci par avance!! :-)
mardi 28 février 2006 à 12:54:41 | Re : [OBJET] Appel d'une méthode sur un évènement

bultez

Membre Club
Réponse acceptée !

Bonjour,
je ne suis sûr ni d'avoir compris, ni de répondre, mais :



<script type="text/javascript">
function objet1 ()
{
 alert('objet1');
}
function objet1.prototype.start ()
{
  with (objet1)
  {
    alert('start');
  }
}

function objet1.prototype.methodeEvent(truc)
{
  with (objet1)
  {
    alert('methodeEvent='+truc);
  }
}

var obj = new objet1 ();
obj.start();
</script>
<input type="button" id="buttonId" value="click" onclick="obj.methodeEvent('bla');" />



Cordialement. Bul. ~ Mon Site qu'il est à Moi ~

mardi 28 février 2006 à 13:48:55 | Re : [OBJET] Appel d'une méthode sur un évènement

malalam

Administrateur CodeS-SourceS
Réponse acceptée !

Hello,

merci pour la réponse déjà.
Mais qu'as tu changé là au juste ?
Si ce n'est que la méthode start () est appelée avant le html ? Et dans mon cas, je ne peux pas. De toutes façons, ça ne change rien : mon objet est instancié. La pméthode start () est une autre méthode dont j'ai besoin plus tard (c'est un timer en fait).

Le problème est l'appel sur l'évènement : obj.methodeEvent('bla') ne passe pas.

J'ai résolu (temporairement), en faisant ujn truc bien tordu:

sur l'évènement, j'appelle une fonction normale : onclick="appelMethode ('bla');"

et dans le js APRES le html, je fais ceci :

function appelMethode (bla) {
   obj1.methodeEvent(bla);
}

Et comme j'ai plusieurs instances d'ujn même objet, j'ai été obligé de jouer avec un id d'instance (je crées mes instances dans un tableau, je récupère la clef courante qui est aussi l'id de ma balise html sur laquelle se trouve l'évènement, et j'appelle la méthode correspondante à l'instance dont la clef est celle-ci...je sais c'est pas clair lol).

néanmoins, je teste ton code et j'essaye de reproduire mon problème avec...2mn :-)

2mn later...

Ahem, j'ai modifié ton code parce qu'en l'état il ne fonctionnait pas, mais en effet tu avais modifié plus que ce que je pensais ;-)  :
<script type="text/javascript">
function objet1 ()
{
 alert('objet1');
}
objet1.prototype.start = function  ()
{
  with (objet1)
  {
    alert('start');
  }
}

objet1.prototype.methodeEvent = function (truc)
{
  with (objet1)
  {
    alert('methodeEvent='+truc);
  }
}

var obj = new objet1 ();

</script>

<input type="button" id="buttonId" value="click" onclick="obj.methodeEvent('bla');" />
<script type="text/javascript">
obj.start();
</script>

et là, ça tourne, et c'est un gros soucis pour moi lol parce que c'est exactement la structure que j'ai (avais) et qui ne tourne pas...

Je ne veux pas mettre mon code ici parce qu'il est un peu long...mais je viens de le réécrire à peu près tel qu'il était, et décidément...je ne vois pas où est l'erreur.
Je dois manquer quelque chose...

Enfin, en tous cas, merci, parce que ça me permet de voir que ce que j'avais fait devrait fonctionner, et que je dois juste ne pas avoir les yeux en face des trous, là, sur mon code (une petite bévue a dû s'y glisser).

mardi 28 février 2006 à 14:19:35 | Re : [OBJET] Appel d'une méthode sur un évènement

coucou747

Administrateur CodeS-SourceS
Réponse acceptée !
Salut,


Un exemple qui marche :

<html>
<head>
<title>Objet Call méthode dans un onclick après document.write</title>
</head>
<body>
<script type="text/javascript">
function monobj(name_){
    this.name_=name_;
    this.afficher=afficher;
    this.agir=agir;
}
function afficher(){
    document.write('<input type="button" value="'+(this.name_)+'" onclick="'+(this.name_)+'.agir();">');
}
function agir(){
    alert(this.name_+" agit !");
}
a=new monobj('a');
a.afficher();
</script>
</body>
</html>



à mon avis, il te manque this.agir=agir; dans ton constructeur....

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
mardi 28 février 2006 à 14:46:04 | Re : [OBJET] Appel d'une méthode sur un évènement

malalam

Administrateur CodeS-SourceS
Je te montrerai mon code, ce sera plus simple.
L'exemple que je mets plus haut, adapté de celui de Bul, fonctionne à merveille.
Mais pas dans mon code lol.

Je testerai quand même avec le this.agir = agir dans le constructeur, oki :-)

Merci :-)
mardi 28 février 2006 à 14:52:33 | Re : [OBJET] Appel d'une méthode sur un évènement

bultez

Membre Club

plusieurs méthodes pour faire de l'Orienté Objet en JS,
j'en proposais une différente de celle utilisée
car j'en connais mieux la syntaxe, comme elle
me semble pouvoir s'appliquer partout (?) et
toujours (?) je n'ai jamais qu'utilisé que ça.
je pense que tu n'as qu'un "problème de syntaxe"

>>
Si ce n'est que la méthode start () est appelée avant le html
non, bien entendu, après, ça baignerai aussi, j'ai fait comme ça pour
l'exemple, pour éviter 2 balises <script...., c'est tout.
>>ton code parce qu'en l'état il ne fonctionnait pas
euh ? ben si, mais en l'état hein, sans rien d'autre.


Cordialement. Bul. ~ Mon Site qu'il est à Moi ~

mardi 28 février 2006 à 14:55:35 | Re : [OBJET] Appel d'une méthode sur un évènement

malalam

Administrateur CodeS-SourceS
Ben non lol, enfin pas chez moi. Je l'ai copié collé sur une page à part. J'ai l'erreur '
mardi 28 février 2006 à 14:56:54 | Re : [OBJET] Appel d'une méthode sur un évènement

malalam

Administrateur CodeS-SourceS
Merde, l'erreur :'obj est indéfini'.
Sur Firefox. Sur IE j'ai pas encore testé (ce qui ne me rassure pas pour mon code lol).
mardi 28 février 2006 à 15:00:59 | Re : [OBJET] Appel d'une méthode sur un évènement

bultez

Membre Club
Réponse acceptée !

j'avais précisé dans mon dernier message
que le test était uniquement avec IE, mais
cette partie à sûrement été enlevée par
des extra-terrestres...
syntaxe différente entre FF et IE, hélas.
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~

mardi 28 février 2006 à 15:04:44 | Re : [OBJET] Appel d'une méthode sur un évènement

bultez

Membre Club
Réponse acceptée !



objet1.prototype.methodeEvent=function(truc)
{
 alert('methodeEvent='+truc);
}

ça devrait le faire pour les 2


Cordialement. Bul. ~
Mon Site qu'il est à Moi ~


1 2

Cette discussion est classée dans : appel, obj, bla, objet1, methodeevent


Répondre à ce message

Sujets en rapport avec ce message

appel javascript [ par guillaume ] je voudrais faire un appel javasript dans une carte graphique client (sous dreamweaver).si qq a une idée elle serait la bien venue.mercie d'avance.gui appel javascript [ par guillaume ] je voudrais faire un appel javasript dans une carte graphique client (sous dreamweaver).si qq a une idée elle serait la bien venue.mercie d'avance.gui appel fonct. Javascrit dans asp [ par bboykossity ] salut les potes!j'voudrais appeler une fct javascript de l'asp, comment faire ?petit exemple : function toto(){alert("youplala");} < Appel d'une fonction VB dans une fonction javascript [ par tiger76 ] Salut à tous!J'ai besoin d'aide : je cherche à appeler une fonction en VBScript à l'intérieur d'une fonction en Javascript.Exemple : function toto().. Comment convertir une chaine en object ? [ par Dexterin ] Bonjour !J'ai un gros soucis...Je désire créer une fonction javascript qui me donne un object en fonction d'une chaine de caractère :Exemple, actuelle appel d'images [ par fmichaud ] Françoisexiste-t-il un code permettant d'appeler des images en tuile, type fractal, donc des fichiers autres que JPG, Gif etc..?merci de vos réponses appel de fonction [ par deewhy ] appel de fonction [ par deewhy ] appel fonction [ par cosminutza ] Salut! Je voudrais transmettre a la partie script (javascript) d'une image SVG contenue dans une page web, une string contenant le nom de la fonction appel fonction vb.net depuis javascript [ par cedced59 ] Bonjour à tous,est-il possible depuis javascript d'appeler une fonction se trouvant dans une page .aspx?Et si oui, comment faire.Merci d'avance.


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,061 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales