me sigue siendo un poco confuso, pero veamos. normalmente para crear un listener solo tienes que usar el modelo tradicional o el estándar. el tradicional es a base de atributos html o propiedades en javascript. y el estándar es a base del DOM.
Código:
// modelo tradicional ;
/* atributos */
<element eventType="handler;"></element>
/* propiedades */
element.eventType = handler;
// modelo estándar ;
element.addEventListener(eventType, handler, capture);
el handler es una función que vendría siendo tu código para manejar el evento cuando se inice. para tu caso, lo que necesitas es posponer una instrucción con setTimeout para que se interprete luego de haber ocurrido el evento. es decir, el evento ocurre, tu handler pospone una tarea, y luego del tiempo indicado se ejecuta la tarea.