JavaScript from Null Liaison d'événement entre navigateurs

Au chapitre cinq de cette série, nous avons plongé dans le monde boueux des auditeurs d'événements. Dans cet épisode, nous nous sommes seulement mouillés les pieds; Cependant, aujourd'hui, nous allons encore plus loin en mettant en place une solution beaucoup plus efficace. En chemin, nous apprendrons une pléthore de nouvelles techniques.


Screencast complet



Notre code final

 var addEvent = (fonction (fenêtre, document) if (document.addEventListener) fonction de retour (elem, type, cb) if ((elem &&! elem.length) || elem === window) elem.addEventListener (type, cb, false); else if (elem && elem.length) var len = elem.length; pour (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'; );

Veuillez noter que ce code est légèrement révisé, sur la base d'excellents commentaires dans la section commentaires..