Appel d'une méthode dans une classe avec href.... - HTML/CSS - Programmation
Marsh Posté le 31-12-2008 à 21:46:15
http://forum.hardware.fr/hfr/Progr [...] 1766_1.htm
Y a déjà eu un soucis dessus , si celà peut t'aider
Marsh Posté le 01-01-2009 à 17:53:02
Salut, merci beaucoup pour ce lien mais je l'ai lu avant de poster mon message... il ne répond pas à ma question. Ou alors ai je pas compris et dans ce cas là serais ce possible de me ré-expliquer dans mon cas ci dessus...?
Si c'est possible pourrait on me donner la ligne de code qui permettrait d appeler la méthode : effaceCarte dans la méthode afficheCarte ?
Merci encore
Marsh Posté le 01-01-2009 à 18:34:40
bah, this, c'est un objet qui correspond à ton élément <a>, et donc cet objet n'a rien à voir avec ta classe qui comprend les méthodes effaceCarte() et afficheCarte()
Je pense que tu mélanges ces deux syntaxes :
Code :
|
Renseignes toi sur this
EDIT : je peux me tromper je n'y connais pas grand chose en javascript
Marsh Posté le 01-01-2009 à 18:46:02
C'est gentil de ta réponse ^^
J ai essayé les deux et ça ne marche pas.
this.effaceCarte() // pour moi ca réfère à effaceCarte de la même class...
Pour ce qui est de this je comprends assez bien son fonctionnement mais si je poste ici c'est que justement contrairement à d habitude je n'arrive pas à faire fonctionner mes lignes de codes :s
Marsh Posté le 01-01-2009 à 19:00:31
Dans une classe, this représente n'importe quelle instance.
Dans un tag HTML, c'est donc l'objet qui représente de la balise courante.
C'est objet a ses méthodes respectives, pour un formulaire par exemple :
Code :
|
Donc, si tu travailles dans un TAG html, tu fais appelles à l'objet qui le représente et pas le tien, celui qui possède les méthodes auxquelles tu tentes d'accéder
Marsh Posté le 01-01-2009 à 19:44:33
Ok merci ^^ mais je cherche toujours comment faire pour appeler ma fonction effacerImage et sans succès de mon coté :$
Pourquoi la ligne de code ci apres contenu dans afficheCarte() ne permet pas , lorsqu on clique sur le lien d'appeler effaceCarte() alors qu ils font parti de la meme class?
Code :
|
J'ai meme esseyé avec le code suivant mais rien n'y fait... :
Code :
|
Je précise que je n'arrive pas à exécuter la methode: effacerCarte(). J'ai mis un alert dans cette méthode pour voir si on passait dedant mais apparement non... :s
Que faut il que je modifie ?
Merci votre patience.
Marsh Posté le 01-01-2009 à 20:30:57
Pourtant si je peux :s
Si je fais :
Code :
|
Ca marche ...mais je ne peux pas appeler une méthode dans le href... ce qui me parait problematique.
J'ai aussi essayé avec le onClick mais cela n'apelle pas non plus la fonction.
J'ai encore regardé sur l'autre topic masi je ne comprends pas à quoi sert le "return:false;" .
De toute façon en copiant ceci, la méthode n'est quand meme pas appelé.
Merci de vos prochaines réponses et merci de cette réponse
Marsh Posté le 01-01-2009 à 21:35:54
Omagad
1. On ne met pas de js dans un @href. Oui c'est possible, c'est pas pour ça que c'est pas gerbant.
2. Que ce soir dans @href ou dans @onclick (pas de majuscules ), `this` réfère à l'objet DOM (donc A ici), je sais pas d'où t'es venue l'idée que ça correspondait à je ne sais quel objet
3. Le code que tu donnes au dessus, ça définit des fonctions (de manière immonde d'ailleurs) pas des méthodes, par définition une méthode ça fait partie d'un objet.
4. `return false;` dans le onclick, ça sert à empêcher l'exécution de l'action normale du lien (qui est d'ouvrir l'url indiquée par @href)
5. document.write, c'est immonde aussi, d'ailleurs.
6. utiliser des handlers d'évènements un minimum propres plutôt que de mettre du JS directement dans le HTML ça serait pas du luxe
Marsh Posté le 01-01-2009 à 21:36:16
Merci beaucoup, je n 'ai pas encore esseyé mais je voulais savoir à quoi servait le innerHTML dans ce cas là?
Je te dis si ca marche =)
Merci
Marsh Posté le 01-01-2009 à 21:38:25
Pour répondre Masklinn :
Ce sont bien des méthodes !!! Je n'ai pas donné l 'intégralité de ma class ! suelement une partie...
Donc napparaissent pas le constructeur, ni les attributs... et toutes les méthodes...
Je continu à tester et merci quand meme
Marsh Posté le 01-01-2009 à 21:38:47
yan000 a écrit : Merci beaucoup, je n 'ai pas encore esseyé mais je voulais savoir à quoi servait le innerHTML dans ce cas là? Je te dis si ca marche =) |
https://developer.mozilla.org/en/DOM/element.innerHTML
yan000 a écrit : Pour répondre Masklinn : Ce sont bien des méthodes !!! |
Ben ça n'y ressemble pas, mais dans tous les cas ce ne sont pas des méthodes sur Element
Marsh Posté le 01-01-2009 à 21:47:04
masklinn a écrit : |
J'apprécie ton investissement sur mon probleme, mais si je peux me permettre on ets pas tous "PRO" du javascript. J en suis loin mais est ce un défaut de commencer par les bases ?!
J'ai entendu parlé des handler mais je ne veux pas les utilise rpour le moment car je trouve que j ai encore des lacune avec certaines choses...comme tu peux le voir
J'apprends...
Merci pour l epxlication Fred =)
Je vais essayer de tester ca.
Marsh Posté le 01-01-2009 à 22:09:41
Voila j ai esseyé de testé .
en fait en dehors de ma classe, dasn mon code html j'ai crée un div avec comme id "img_x".
Puis dans mon fichier js, dans la méthode effaceCarte() j'ai mis le inner de la sorte :
Code :
|
Seulement le problème persiste... quand je clique sur mon lien, la méthode effaceCarte() n'est pas déclenché.
Je cherche toujours... si quelqu un trouve... qu il le dis !!
Merci ^^
Marsh Posté le 02-01-2009 à 09:39:35
yan000 a écrit : Voila j ai esseyé de testé . Puis dans mon fichier js, dans la méthode effaceCarte() j'ai mis le inner de la sorte :
Seulement le problème persiste... quand je clique sur mon lien, la méthode effaceCarte() n'est pas déclenché. Je cherche toujours... si quelqu un trouve... qu il le dis !! Merci ^^ |
Putain de bordel de merde t'es bouché ou t'es pas foutu de lire des posts en français
On t'a dit que ton this (collé bien dégueulassement dans le @href) ça faisait référence à un élément HTML (soit A soit window) pas à je ne sais quel truc bizarre que tu as créé
Marsh Posté le 02-01-2009 à 12:04:51
Je l avais mis document.getElementById...
Et quant à FireBug je l'ai installé depuis pas mal de temps. Je vais encore jetter un coup d'oeil car ca m'embete de pas trouver la solution à ce problem :s
Merci encore =)
Marsh Posté le 02-01-2009 à 12:08:59
masklinn a écrit : |
Salut toi... tu as passé une mauvaise nuit dit donc... où alors ta femme a du bien te la faire sentir ! (je m'en tiens au même language que toi )
Pour le "this" j'ai aussi essayé sans , je ne me contente pas d'essayer une ligne de code avant de reposter sur le forum !
Si à l'intérieur de la méthode je fais simplement :
Code :
|
...alors dans ce cas là ca marche très bien, et la méthode est bien trouvée.
Or dans le href cela ne veut pas marcher.
Je tiens à te dire que si c'est pour me manquer de respect ou à t énerver comme tu le fais tu peux déjà ne plus venir poster ici. Car des gens comme toi sur les forum n'aide pas vraiment les gens mais les frustrent encore plus.
Merci.
Marsh Posté le 02-01-2009 à 13:04:31
Merci pour cette explication sur le this et mon href qui m'ont beaucoup éclairée !!!
Pour fireBug j'ai bien refais ce que tu m as di mais aucune erreur n'est détectée...
Meme avec le this LoL
Il faudrait en fait que je ne passe pas par le this... mais que j'appelle la méthode de l'objet instancié d'une autre manière.
Marsh Posté le 02-01-2009 à 13:54:45
Code :
|
J'ai essayé avec le point d'arret... c'est bisare il y passe apparemment mais n'exécute pas le alert... ou n importe quelle ligne de code présente dans la méthode effaceCarte().
Marsh Posté le 02-01-2009 à 16:34:29
Oui c'est ça que je dois faire en cliquant sur l'image.
Je ne peux malheureusement pas faire autrement. Dans le cadre d'un travail, je me dois de respecter la forme de la class que l'on m a chargé de faire.
Donc une méthode qui crée une image, une autre qui la supprime puis d'autres dont on ne parlera pas car inutile ici.
Il faut qu a chaque fois que je crée une instance d'un objet de la class JeuCarte, que je puisse avoir sa méthode qui la crée et sa méthode qui la supprime...
En faisant comme tu m'as di je ne pense pas que je pourrai en instancier autant que je veux et supprimer la carte que je veux à n'importe quel endroit de mon code...
Je ne sais pas si j'ai été clair :s
En tout cas merci de ta réponse =)
Marsh Posté le 31-12-2008 à 20:38:22
Bonsoir,
Ca fait une journée que je suis sur ce probleme. Mais je vasi m'arreter pour ce soir car c'ets le réveillon
Je travaille en Javascript.
J'ai en fait une classe JeuImage qui comporte 3 méthodes :
-afficheCarte
-deplaceCarte
-effaceCarte
Voici le détail de ces méthodes:
Mon probleme vient du fait que dans la fonction afficheCarte ce moreceau de code : " <a
href=\"javascript:this.effaceCarte(); \"> " n'arrive pas à appeler la méthode effaceCarte() :s
Comment faire s'il vous plait ?
Je vous remercie par avance !!
A bientôt
_________
Annuaire des écoles de musique, de chant et conservatoires de France ==> www.musique-ecole.fr