JavaScript de la Null Legarea de evenimente Cross-Browser

În capitolul cinci al acestei serii, am sărit în lumea noroioasă a ascultătorilor de evenimente. În episodul ăsta, ne-am luat picioarele umede; totuși, astăzi, vom face lucrurile un pas mai departe pe măsură ce implementăm o soluție mult mai eficientă. Pe parcurs, vom învăța o mulțime de tehnici noi.


Full Screencast



Codul nostru final

 var addEvent = (functie (fereastra, document) if (document.addEventListener) functie return (elem, type, cb) elem.addEventListener (tip, cb, fals); altfel dacă (elem && elem.length) var len = elem.length; pentru (var i = 0; i < len; i++ )  addEvent( elem[i], type, cb );   ;  else if ( document.attachEvent )  return function ( elem, type, cb )  if ( (elem && !elem.length) || elem === window )  elem.attachEvent( 'on' + type, function()  return cb.call(elem, window.event)  );  else if ( elem.length )  var len = elem.length; for ( var i = 0; i < len; i++ )  addEvent( elem[i], type, cb );   ;  )( this, document ); // Example Usage var lis = document.getElementsByTagName('li'); addEvent( window, 'click', function()  this.style.border = '1px solid red'; );

Rețineți că acest cod este ușor revizuit, pe baza unor feedback excelente în secțiunea de comentarii.

Cod