Syntaxe possible ? [Résolu]

Signaler
Messages postés
96
Date d'inscription
mercredi 20 août 2003
Statut
Membre
Dernière intervention
10 février 2011
-
Messages postés
96
Date d'inscription
mercredi 20 août 2003
Statut
Membre
Dernière intervention
10 février 2011
-
Bonjour,
pour gérer les évènements intervenants sur des éléments de formulaire on utilise ceci :

maCacase.onclick= faitSa ;

imaginons maintenant que plusieurs éléments déclenche au click de souris la même action, on écrit donc :

maCacase1.onclick =faitSa;
maCacase2.onclick= faitSa ;
monBtnRadio.onclick =faitSa;

d'où ma question : existe-t'il une syntaxe permettant de mettre en facteur le test du onclick (ici pour l'exemple, si ça marche on pourrait l'utiliser pour n'importe quoi)  pour déclencher un même action (faitSa) ?

un truc du genre :

(maCacase1||maCacase2||monBtnRadio).onclick=faitSa;

merci de vos réponses.





S
apakus

9 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
bon , un exemple ALC,   ça éveillera peut-être des idées...

<script>
    Array.prototype.click = function ()
    {    for ( var obj=0;obj<this.length;obj++ )
        {    document.getElementById(this[obj]).onclick = function()
            { alert(this.value);    };
        }
    }

    new Array('maCase1','maCase2','btnRadio').click();

</script>

    bien sûr "brut de fonderie".

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>j'avoue patauger un tantinet du coté de la poo.
    t'es pas le seul... la syntaxe... n'est pas simple

>>passer en argument de click la fonction à éxecuter
    "tout" peut être passer...
    l'évènement à déclencher,  des paramètres....

    ch'tiot exemple   ou on passe une fonction ( rien de plus ! )

    function toto()
    {    alert('exemple');    }
    Array.prototype.click = function (euh)
    {    for ( var obj=0;obj<this.length;obj++ )
        {    document.getElementById(this[obj]).onclick = function()
            { euh();    };
        }
    }

    new Array('maCase1','maCase2','btnRadio').click(toto);

    toujours "brut de fonderie" !!!
    bien entendu [ !?!?? ;o)) ]   passer des arguments à  toto est possible !

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,
    y'a toujours la solution de se faire une fonction,
        mais mon foie, le remède serait pire que le mal.
    mais loin d'être un spécialiste des syntaxes javascript qui
        surprennent toujours et sont bien plus riches qu'on imagine !
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
Salut,

Il suffit de tester pour savoir !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
96
Date d'inscription
mercredi 20 août 2003
Statut
Membre
Dernière intervention
10 février 2011
3
Cette voie est bien interessante, mais j'avoue patauger un tantinet du coté de la poo.
Comment peut-on faire pour passer en argument de click la fonction à éxecuter ?

S
apakus
Messages postés
96
Date d'inscription
mercredi 20 août 2003
Statut
Membre
Dernière intervention
10 février 2011
3
En fait je voulais dire, comment remplacer function(){alert(this.value);}; par une fonction que l'on passerai en argument de click ?

S
apakus
Messages postés
96
Date d'inscription
mercredi 20 août 2003
Statut
Membre
Dernière intervention
10 février 2011
3
Abadacor,

En fait, c'est comme d'habitude !

Merci pour ces exemples.

S
apakus
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
mais "ma" réponse est pire que le mal   ;o))
il vaudrait mieux attendre les vrais spécialistes pour avoir une "vraie" réponse.
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
96
Date d'inscription
mercredi 20 août 2003
Statut
Membre
Dernière intervention
10 février 2011
3
C'est déjà pas mal, mon but étant de réduire la taille de mon code.
J'étais au bord du gouffre et j'ai fait un grand pas en avant.
De plus, on peut utliser cet exemple pour la vérification de champs de formulaire similaires pendant la saisie.
['champ1','champ2',.....,'champn'].keyup(isAuthChar);

S
apakus