Optimisation javascript possible ?

annesirine Messages postés 38 Date d'inscription samedi 16 octobre 2004 Statut Membre Dernière intervention 19 février 2006 - 8 mars 2005 à 12:21
chimelpremier Messages postés 544 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 20 mai 2005 - 9 mars 2005 à 00:12
Bonjour a tous,

Je genere du html avec javascript par programmation, et concretement ca m'amene a faire des milliers de DIV dans lequel y tjs la meme chose niveau javascript, dans chaque DIV:

onmouseover= "flipflop
(this,
0);" onmouseout ="flipflop
(this,
1);" onClick= "WebBrowser_User_Click
(this)" onDblClick ="WebBrowser_User_DblClick
(this)"

J'ai le presentiment que je boosterais le temps d'affichage (car il devient long a lire), si je pouvais factoriser tout ca.
Par exemple je pourrais mettre les mouseover, mouseout dans la balise BODY, mais auriez vous une astuce, pour que les evenements de BODY alors sache dans quelle DIV je suis pour renvoyer le this de la DIV ?.
Je vous joins la page complete ici, ca sera + clair :

http://animaux.forums.free.fr/animaux/upload/itm.zip

Grand merci a ceux qui m'aideront, et aux suggestions.

2 réponses

annesirine Messages postés 38 Date d'inscription samedi 16 octobre 2004 Statut Membre Dernière intervention 19 février 2006
8 mars 2005 à 12:23
Houps c'est :

"Par exemple je pourrais mettre les mouseover, mouseout, onclick, ondblclick"

et non

"Par exemple je pourrais mettre les mouseover, mouseout "

y a 4 events
0
chimelpremier Messages postés 544 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 20 mai 2005
9 mars 2005 à 00:12
En effet ton code est hyperlourd et en plus on voit que c'est destiné que pour IE.
Tu peut éviter de mettre tes évènements dans chaque élément en utilisant
cette fonction :

function selObj(e){ // sélection de l'objet sous la souris
element=ie?event.srcElement:e.target;
if(!element.tagName)element=element.parentNode // pour NS6+
}

el récupère l'objet
par éxemple:

function flipflop_over(e)
{
selObj(e);mode=0;
if (mode 0) document.body.tagselect element.id;
else document.body.tagselect = '';


if (element.style.background != '#ffffcc')
{


if (mode == 0)
{
element.style.background = '#ddf0fe';
}
else
{
if (document.body.context == '0')
{
element.style.background = '#FFFFFF';
}
}


}
}
document.onmouseover=flipflop_over

et ainsi de suite

je l'ai appliqué ici
0
Rejoignez-nous