Me preguntaba cómo lograr la funcionalidad .live de jQuery con el JavaScript "tradicional". Quiero que algo como $ ('a'). Live ('mouseover', mouseover_func) se escriba como el JavaScript habitual. ¿Pero cómo?La funcionalidad en vivo de jQuery sin jQuery
Respuesta
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.
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 ...
- 1. jQuery + ordenable + en vivo
- 2. jQuery flotar en vivo
- 3. jquery seleccionar vivo onchange
- 4. jQuery - Retirar Redimensionar Funcionalidad
- 5. jQuery Traversing + Controladores de eventos en vivo
- 6. jQuery - Plug-ins de validación en vivo
- 7. Haciendo selector de fechas en vivo - jQuery
- 8. JQuery 'en vivo' para el selector?
- 9. jquery 1.4 ¿Comportamiento en vivo en .each?
- 10. ¿JQuery en vivo ralentiza los sitios web?
- 11. Implementando la carpeta "en vivo" de jQuery con Javascript nativo
- 12. versión reducida de jQuery para la funcionalidad ajax/json
- 13. Plugin jQuery Form - cómo hacer que ajaxForm() "en vivo"?
- 14. jQuery en vivo ('clic') de disparo para haga clic con
- 15. Enlazar eventos múltiples con el método 'en vivo' de jQuery
- 16. Cómo implementar funcionalidad de alternar en JQuery UI Seleccionable?
- 17. Cómo crear eventos personalizados en vivo en jQuery
- 18. jQuery evento en vivo en iPad ... ¿por qué no funciona?
- 19. jQuery evento en vivo para los elementos DOM añadido
- 20. jQuery Plugin: Adición de funcionalidad de devolución de llamada
- 21. jQuery Funcionalidad de carga de imágenes arrastradas y arrastradas
- 22. implementar signalR sin jquery
- 23. stopPropagation sin jQuery
- 24. jQuery UI sin HTML
- 25. jQuery datepicker sin entrada
- 26. "mouseenter" confiable sin jQuery
- 27. OnClick sin jQuery
- 28. Cambio de hash sin recarga en jQuery
- 29. jQuery Mobile CSS3 Transiciones de página sin jQuery Mobile Library
- 30. jQuery Mobile delegado vs vs vivo se unen
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
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. –
@GolezTrol: el burbujeo es en realidad la única forma posible de lograrlo. – Tgr