El método Live vincula un controlador al documento e identifica qué elemento desencadenó el evento desde la propiedad event.target
.
Por lo que el controlador real está en la parte superior (en términos de jerarquía).
El stopPropagation
detiene el burbujeo de ir arriba en la jerarquía de DOM, pero desde el manejador es en la parte superior ya (en el caso .live
) no hay lugar a la burbuja superior a ..
ejemplo intento ..
- document
- div
- link
se enlaza un controlador de eventos click al enlace (con el bind
o click
método).
Cuando hace clic en el vínculo, se desencadena el controlador, pero además el evento click sube el DOM hasta que llega al documento y también activará los manejadores de clic vinculados al div y al documento. (menos que utilice la .stopPropagation
)
Alternativamente, si se utiliza el método .live
para enlazar el controlador de eventos, quedará vinculado al documento. Si ahora hace clic en el enlace, el evento (que no se activará de inmediato, ya que ningún controlador está vinculado a él) subirá naturalmente el DOM (activando los manejadores de clics que encuentra). Una vez que alcanza el documento activará nuestro propio controlador. Pero no hay superior para ir, por lo que el stopPropagation
es inútil en este momento.
Pregunta relacionada (debajo del capó): http://stackoverflow.com/questions/1687296/what-is-dom-event-delegation –