bonjour, j'ai un petit soucis
je suis en train de faire un menu CSS
pour IE j'ai besoin d'attacher des évènement onmouseover et onmouseout sur des élements d'une liste
j'utilise cette fonction :
le problême ne vient pas de la regexp, j'ai essayé avec autre chose de moins gourmand et c'est la même chose.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 sfHover = function() { var sfEls = document.getElementById("nav").getElementsByTagName("LI"); for (var i=0; i<sfEls.length; i++) { sfEls[i].onmouseover=function() { this.className+=" sfhover"; } sfEls[i].onmouseout=function() { var cl = new RegExp(" sfhover\\b"); this.className=this.className.replace(cl, ""); cl = null; } } sfEls =""; } if (window.attachEvent) window.attachEvent("onload", sfHover);
Le comportement dans IE est normal au départ, menu rapide, puis devient de plus en plus lent au fur à mesure que je passe sur les éléments de la liste, plus je passe sur des élément et plus ça ralenti, en fait le curseur de la souris oscille en passant du curseur normal au curseur avec le sablier.
Il semblerait que ça soit dû a l'utilisation de la propriété className
est-ce un bug de IE (ça m'etonnerait quand même)
y a t-il un autre moyen que de swapper les classname ? ou de reinitialiser quelque chose !??!
la mémoire utilisée par IE monte petit à petit de même que l'utilisation du processeur jusqu'à 90%
c'est un peu énorme quand même
c'est le seul script que j'utilise sur cette page
avez vous une idée de ce qui cause ce ralentissement ?
Partager