2011-02-13 14 views

Respuesta

10

Vincula un controlador de evento "mouseover" al elemento <body>. En ese controlador, verifique la propiedad "objetivo" de cada evento que capte y vea si su propiedad "tagName" es "A". Si es así, llame al controlador.

La función "en directo" aprovecha el evento "burbujeo", que es el nombre para el proceso de búsqueda de identificadores para los manejadores del elemento de destino a la raíz del DOM, uno de los padres a la vez. Como cada <a> en su documento se puede rastrear hasta el <body>, ese nodo raíz obtendrá todos los eventos "mouseover" que no son desviados por manejadores de nivel inferior que cancelan el burbujeo (a través del método "stopPropagation()" en el objeto del evento, o alguna forma extraña específica del navegador, supongo).

No todos los eventos hacen burbujas, sin embargo. Estoy buscando una buena referencia ... bien aquí, el MDC page seems pretty good aunque un poco viejo tal vez.

+0

Pensé que 'en vivo' era vincular automáticamente el evento a nuevos elementos que coinciden con el mismo selector. ¿Esto se logra a través del burbujeo? No lo pensaría así. – GolezTrol

+0

Creo que la respuesta parece correcta. Si coloca el mouse sobre un elemento recién formado, se convertirá en burbuja y mouseover cuerpo. Si el cuerpo tiene un controlador para verificar cuál es el objetivo, entonces esto funcionaría. –

+0

@GolezTrol: el burbujeo es en realidad la única forma posible de lograrlo. – Tgr

0

Simplemente lea el código fuente de jQuery para ver cómo lo hace. Esa es una de las alegrías de la fuente abierta. Aprenderá muchísimo ...

Cuestiones relacionadas