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.
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..