portée d'une variable dans une fonction dans une méthode
Bonjour,
Mon probléme est un probléme de portée d'une variable.
mon code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| // 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+"]"; |
Le soucis vient de l'attibut 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| 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 |
idImage devient une variable globale mais ce n'est plus un attribut d'objet
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:
1 2
| var objBBcode = new classObjectBBcode(null,null,"<?php echo $idimage; ?>");
objBBcode.showUpload(); |
autre question
Si dans ma méthode showUpload
j'ecris un
Code:
return this.tagImage
comment récupérer tagImage ?
avec un code apellant type
Code:
1 2 3 4 5 6 7 8
| 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> |
ne renvoit rien
merci de m'aider