pour gerer des evenements de mouseover, je passe par des fonctions anonymes:
Code : Tout sélectionner
function getStandardEvent(e)
{
if (e == null && window.event)
{
e = window.event ;
}
if (e.target == null && e.srcElement)
{
e.target = e.srcElement ;
}
if (! e.preventDefault )
{
e.preventDefault = function () { this.returnValue = false ; } ;
}
return e ;
}
function addEvent(obj, e, fn)
{
if (obj.addEventListener)
{
obj.addEventListener(e, fn, false);
return true;
}
else if (obj.attachEvent)
{
var r = obj.attachEvent("on"+e, fn);
return r;
}
else
{
return false;
}
}
Code : Tout sélectionner
for(i=0; i<=7; i++)
{
j = i;
if(i == 0) { j = "NONE"; }
addEvent(document.getElementById('ancre_filtre_body_'+ j), 'mouseover', function(e){ display_zoom(e, j); });
}
dans la forme actuelle, ca merde totale car j a ce moment la est egale a 7 (il prend la valeur globale de j)
je pourrais faire comment? via un eval?
genre
eval('function(e) { display_zoom(e, '+ j +'); }');
y'aurais pas une methode plus "propre" (j'ai jamais ete fana des evals)