add: function( elem, types, handler, data, selector ) {
	/* ... 4 wiersze kodu ... */
		elemData = dataPriv.get( elem );
	/* ... 13 wierszy kodu ... */
	// Sprawdzenie, czy procedura obsługi ma unikatowy identyfikator 
  // używany później do znalezienia/usunięcia procedury
	if ( !handler.guid ) {
		handler.guid = jQuery.guid++;
	}

	// Inicjowanie struktury zdarzeń i głównej procedury obsługi elementu, 
  // jeśli jest on pierwszym elementem
	if ( !( events = elemData.events ) ) {
		events = elemData.events = {};
	}
	/* ... 9 wierszy kodu ... */

	// Obsługa wielu zdarzeń oddzielonych spacją
	types = ( types || "" ).match( rnotwhite ) || [ "" ];
	t = types.length;
	while ( t-- ) {
		/* ... 30 wierszy kodu ... */
		// Inicjowanie kolejki procedury obsługi zdarzeń, jeśli element jest pierwszym elementem
		if ( !( handlers = events[ type ] ) ) {
			handlers = events[ type ] = [];
			handlers.delegateCount = 0;

			// Użycie metody addEventListener tylko wtedy, gdy specjalna procedura obsługi zdarzeń
      // zwraca wartość false
			if ( !special.setup ||
				special.setup.call( elem, data, namespaces, eventHandle ) === false ) {

				if ( elem.addEventListener ) {
					elem.addEventListener( type, eventHandle );
				}
			}
		}
		/* ... 9 wierszy kodu ... */ 
    // Dodanie do listy procedur obsługi elementu (delegaty znajdują się na jej początku)
		if ( selector ) {
			handlers.splice( handlers.delegateCount++, 0, handleObj );
		} else {
			handlers.push( handleObj );
		}
		/* ... 3 wiersze kodu ... */
	}
}