|
Publicité | ||||||||||||||||||||||
|
|
#1 (permalink) |
|
Membre habitué
![]() |
Bonjour,
Mon probléme est un probléme de portée d'une variable. mon code Code :
// classe qui manipule l'objet bbcode insertion d'image ,de liens dans le contenu et autre // le constructeur de l'objet de type classObjectBBcode function classObjectBBcode(imageTag,lienTag,idImage){ this.imageTag=imageTag; this.lienTag = lienTag; this.idImage=idImage ; } //méthode qui affiche un formulaire d'upload et qui créé un tag qui sera //inséré via une autre méthode dans le contenu d'un textarea classObjectBBcode.prototype.showUpload=function(){ var im1 = document.images[0]; im1.onclick=function() { var div = document.getElementById("showUpload"); div.style.display = 'block'; var contenu = document.forms[4].elements[3].value; var reg = new RegExp("\[img [0-9]+\]","g"); var tags=contenu.match(reg); var tagImage = "[img "+this.idImage+"]"; si un alert l'affiche dans la méthode showUpload il reste undefined dans ma fonction anonyme. une histoire de portée visiblement.même si j'ai résolu le probléme Code :
function classObjectBBcode(imageTag,lienTag,idImageF){ this.imageTag=imageTag; this.lienTag = lienTag; idImage=idImageF ; } classObjectBBcode.prototype.showUpload=function(){ var im1 = document.images[0]; im1.onclick=function() { var div = document.getElementById("showUpload"); div.style.display = 'block'; var contenu = document.forms[4].elements[3].value; var reg = new RegExp("\[img [0-9]+\]","g"); var tags=contenu.match(reg); var tagImage = "[img "+idImage+"]";//résultat à retourner passer en param à l'appelle de smiley exist il un moyen de récuperer cet atribut sous la forme this.idImage dans ma fonction contenue dans la méthode et qui s'éxécute aprés un click sur une image ? faire qyue le 1er code fonctionne ? Voici le code appelant Code :
var objBBcode = new classObjectBBcode(null,null,"<?php echo $idimage; ?>"); objBBcode.showUpload(); Si dans ma méthode showUpload j'ecris un Code :
return this.tagImage avec un code apellant type Code :
var objBBcode = new classObjectBBcode(null,null,"<?php echo $idimage; ?>"); var varreturn=objBBcode.showUpload(); var divTest = document.getElementById("test"); divTest.innerHTML=varreturn; </script> <div id='test'></div> merci de m'aider |
|
|
|
|
|
#2 (permalink) |
![]() Date d'inscription: juin 2008
Localisation: Bordeaux
Âge: 39
Messages: 6 708
|
Pour ta première question, dans ta fonction anonyme, le this ne correspond plus au même objet.
Une solution est de passer par une variable intermédiaire (souvent appelée that) : Code :
classObjectBBcode.prototype.showUpload=function(){ var that = this; var im1 = document.images[0]; im1.onclick=function() { var div = document.getElementById("showUpload"); div.style.display = 'block'; var contenu = document.forms[4].elements[3].value; var reg = new RegExp("\[img [0-9]+\]","g"); var tags=contenu.match(reg); var tagImage = "[img "+that.idImage+"]";
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
|
|
|
|
|
#3 (permalink) | ||
|
Membre habitué
![]() |
Bonjour
Alors là je dis bravo ![]() C'est trés bon merci beaucoup en fait ,javascript simule la notion d'orienté objet en tout cas tel qu'elle existe en java ou C# Mais je ne veux rien qui rappelle le procédural Merci bien autre question dans une methode j'ai ma fonction anomyme Citation:
comme ceci Citation:
qui ne s'appelle pas puis je en faire une fonction nominative et l'appellé la solution semble d'en faire un attibut de la classe et donc de l'instance de l'objet peut etre le but avec la variable ainsi récupérée via l'appel de la fonction est d'appeller une autre méthode qui elle va véritablement insérer ce tag dans un textarea. Dernière modification par laurentg2003 ; 28/06/2009 à 11h22. |
||
|
|
|
|
|
#5 (permalink) |
|
Membre habitué
![]() |
Re moi
les variables globales c 'est bien jolie mais comment appeller une methode d'instance ou une methode statique en lui passant des parametres sans créer un attribut mon parametre est une variable Je peux créer une fonction classique function ma_finction(){} ret l'appeller dans une méthode mais je ne veux pas je voudrais appeller une methode en lui passant des parametres Merci |
|
|
|
|
|
![]() |
||
portée d'une variable dans une fonction dans une méthode
|
||
| Outils de la discussion | |
|
|