Uso questo metodo per aggiungere un evento ad un elemento
codice:
//----------------------------------------------------------------------
//Aggiunge un evento ad un elemento
// elm = elemento, esempio document.getElementById("id_elemento")
// oppure "id_elemento"
// evType = "click", "change", ...
// fn = puntatore a funzione o function(e){}
// useCapture = true or false
//----------------------------------------------------------------------
function addEvent(elm, evType, fn, useCapture)
{
if(typeof(elm) == 'string') elm = document.getElementById(elm);
if (elm.addEventListener)
{
elm.addEventListener(evType, fn, useCapture);
return true;
}
else if (elm.attachEvent)
{
var r = elm.attachEvent('on' + evType, fn);
return r;
}
else
{
elm['on' + evType] = fn;
}
}
adesso voglio aggiungere l'evento change ad ogni elemento di un form, e uso:
codice:
window.onload = function()
{
var els = document.getElementById("form1").elements;
for(var i = 0; i < els.length; i++)
{
var el = els[i];
//*** FUNZIONE ****
}
}
adesso ho questa scelta:
addEvent(el, "change", function(e){ if(!e) var e = window.event; var tg = (e.target) ? e.target : e.srcElement; alert(tg.id); }, false);
addEvent(el, "change", (function(s){return function(){alert(s.id);};})(el), false);
premesso che funzionano entrambe, mi piacerebbe sapere quale è quella meno pesante.