abdoulax
Messages postés875Date d'inscriptionsamedi 17 mai 2003StatutMembreDernière intervention22 juin 2012
-
28 nov. 2008 à 12:47
@karamel -
28 nov. 2008 à 20:30
Dans le code suivant, j'utilise une variable global (mythisExemple) pour accéder à mon objet sur l'evenement keypress. N'y aurait t'il pas une methode sans variable global ?
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 28 nov. 2008 à 13:03
certes... mais ce que tu nous montres ne fonctionne pas non plus !
this.elmt.addEvent.... et c'est quel objet elmt ?
si ton script fonctionnait, ça fonctionnerait
[mon Site] [M'écrire] Bul
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 28 nov. 2008 à 13:27
comment ça pas "important" ?
sinon c'est quel objet ? c'est de la génération spontanée ?
si elmt n'est = à rien, ça ne peut pas fonctionner !!!
>> this.elmt. = document.getElementByID("toto")
???
donc tu n'as qu'un seul objet ? toto ?
et à quoi ça peut bien servir alors de faire ce que tu fais ?
s'il y avait plusieurs objets ( toto, tata, titi... ) je comprendrais,
mais là...
abdoulax
Messages postés875Date d'inscriptionsamedi 17 mai 2003StatutMembreDernière intervention22 juin 20121 28 nov. 2008 à 13:35
En fait ma question est général et pas spécifique à l'evenement ou à la balise. Par exemple toto peut être un input de type texte avec l'évenement keypress mais peut aussi très bien être un div avec l'event click. Le seul truc que je souhaite savoir, c'est si il y a une methode alternative pour passer la reference d'un objet.
Je vais quand même te faire un exemple:
<script>
function exemple()
{
this.load = function()
{
mythisExemple = this;
document.getElementById("toto").addEvent('keypress', function(){mythisExemple.event()});
}
this.event = function()
{
}
}
</script>
Have Fun ...
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 28 nov. 2008 à 14:03
houla.... t'es pas un simple toi !
document.getElementById("toto").addEvent('keypress', function(){mythisExemple.event()});
c'est quoi mythisExemple ? : mythisExemple = this;
et ça voudrait/c'est censé, être quoi pour toi ?
>>En fait ma question est général et pas spécifique à l'evenement ou à la balise.
ben justement ! mettre document.getElementById("toto").addEvent('keypress'....
c'est lié à un évènement et à une balise bien spécifique !
tu veux affecter un évênement keypress ( si tu sais ce que c'est keypress,
qui n'est pas keyup ! ), à une balise ? ( POO ou pas )
abdoulax
Messages postés875Date d'inscriptionsamedi 17 mai 2003StatutMembreDernière intervention22 juin 20121 28 nov. 2008 à 14:18
mythisExemple est une variable global pour accéder à mon object. Mais sa sert à rien de faire de l'object si on utilise des variable global. Je cherche donc une solution pour se passer de cette variable !!
Alors un autre exemple, comment accéder à this.lol ??
Dans ce script tu peux voir que "hi" est retourné seulement par mythisExemple.lol et non par this.lol . C'est normal car this point sur la balise input et plus sur l'object exemple.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 28 nov. 2008 à 14:32
je ne comprend pas ton .lol !
il sert à quoi ?
je ne comprend d'ailleurs rien à ce que tu veux faire.....
un ch'tiot contre-exemple, qui nous aidera peut-être ?
<script type= "text/javascript">
function exemple()
{ this.load = function()
{ this.elem=document.getElementById("toto");
var tmp=this;
this.elem.onkeyup= function()
{ alert( tmp .elem.value); }
}
}
var auto = new exemple();
auto.load();
</script>
mais encore une fois : this.elem=document.getElementById("toto"); ????
tout est totalement inutile !
met directement le onkeyup sur l'élement !!!
j'ai mis keyup, car avec keypress c'est avant "l'affichage"
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 28 nov. 2008 à 14:53
et si tu veux faire pour plusieurs champs ( sinon quel intérêt ? )
<script type="text/javascript">
function exemple(prm)
{ this.elem=document.getElementById(prm);
this.load = function()
{ var tmp=this;
this.elem.onkeyup= function()
{
alert(tmp.elem.value);
}
}
}
var auto = new exemple("toto"); auto.load();
var autp = new exemple("titi"); autp.load();
XtremDuke
Messages postés626Date d'inscriptionsamedi 28 septembre 2002StatutMembreDernière intervention18 mai 20094 28 nov. 2008 à 14:57
Salut,
Renseignes toi sur le "binding" des fonctions qui te permettra de répondre à ton besoin.
En gros, une fois ta fonction "bindée" (de ton onKeyUp), tu pourras utiliser le pointer "this" dans cette dernière.
Maintenant, tu peux également déclarer une variable comme te l'a indiqué Bul3.
abdoulax
Messages postés875Date d'inscriptionsamedi 17 mai 2003StatutMembreDernière intervention22 juin 20121 28 nov. 2008 à 15:21
Effectivement, la solution du var marche, mais je perds la structure de ma class enfin ce n'est pas très grave. Faut que je regarde le "binding" ça à l'air de correspondre à ce que je veux faire!!
Sinon même problématique mais avec un setTimeout??
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 28 nov. 2008 à 15:31
>> mais je perds la structure de ma class
sur l'exemple que j'ai mis peut-être certes,
mais rien ne t'empêche de la refaire !
quand au "binding", je t'avoue que je sais appliquer dans certaines circonstances,
mais que je ne possède pas le concept totalement pour toujours le faire !
XTremDuke devrait nous faire un ch'tiot topo la dessus,
ça aiderait pas mal de personnes
un ch'tiot topo pour vrais débutants, sinon je ne comprendrais que peu
de choses, comme sur les autres tutos à ce propos
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 28 nov. 2008 à 15:36
message perdu corps et bien !
pour setTiemout :setTimeout( function() { fonction à appeler( paramètre , tmp ou autres ); }, délai );
[mon Site] [M'écrire] Bul
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 28 nov. 2008 à 15:50
>>On a fini par se comprendre.
c'est pas toujours simple ( surtout pour moi ! )
nickel si ça baigne
>>binding c'est vrai que c'est un peu cassage de cervo !!!
au secours XTremDuke ;o))
qui, lui, a parfaitement pigé, et il va être capable de descendre
au niveau du commun des mortels pour qu'ils percutent eux aussi,
s'il a un peu de temps...