Uso questo metodo per aggiungere un evento ad un elemento
adesso voglio aggiungere l'evento change ad ogni elemento di un form, e uso: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; } }
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.
![]()

Rispondi quotando