Syntaxe possible ?

Résolu
sapakus Messages postés 96 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 10 février 2011 - 13 juin 2008 à 15:39
sapakus Messages postés 96 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 10 février 2011 - 14 juin 2008 à 14:57
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

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
14 juin 2008 à 09:57
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]
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
14 juin 2008 à 13:26
>>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]
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
13 juin 2008 à 16:35
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]
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
13 juin 2008 à 20:38
Salut,

Il suffit de tester pour savoir !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sapakus Messages postés 96 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 10 février 2011 3
14 juin 2008 à 13:09
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
0
sapakus Messages postés 96 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 10 février 2011 3
14 juin 2008 à 13:17
En fait je voulais dire, comment remplacer function(){alert(this.value);}; par une fonction que l'on passerai en argument de click ?

S
apakus
0
sapakus Messages postés 96 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 10 février 2011 3
14 juin 2008 à 13:35
Abadacor,

En fait, c'est comme d'habitude !

Merci pour ces exemples.

S
apakus
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
14 juin 2008 à 13:55
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]
0
sapakus Messages postés 96 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 10 février 2011 3
14 juin 2008 à 14:57
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
0
Rejoignez-nous