Estoy tratando de encontrar el equivalente jQuery de esta llamada al método JavaScript:
document.addEventListener('click', select_element, true);
He llegado tan lejos como:
$(document).click(select_element);
pero eso no logra el mismo resultado, como el último parámetro del método JavaScript: un valor booleano que indica si el controlador de eventos debe ejecutarse en la fase de captura o burbujeo (según tengo entendido en http://www.quirksmode.org /js/events_advanced.html ): se .
¿Cómo especifico ese parámetro o logro la misma funcionalidad con jQuery?
javascript
jquery
events
event-handling
dom-events
Estropear
fuente
fuente
Respuestas:
No todos los navegadores admiten la captura de eventos (por ejemplo, las versiones de Internet Explorer anteriores a la 9 no), pero todos admiten el burbujeo de eventos, por lo que es la fase utilizada para vincular controladores a eventos en todas las abstracciones entre navegadores, incluido jQuery.
Lo más cercano a lo que está buscando en jQuery está usando
bind()
(reemplazado poron()
jQuery 1.7+) o los métodos jQuery específicos del evento (en este casoclick()
, que llamabind()
internamente de todos modos). Todos usan la fase de burbujeo de un evento elevado.fuente
A partir de jQuery 1.7,
.on()
ahora es el método preferido para vincular eventos, en lugar de.bind()
:Desde http://api.jquery.com/bind/ :
La página de documentación se encuentra en http://api.jquery.com/on/
fuente
Lo más cercano sería la función de enlace:
http://api.jquery.com/bind/
fuente
Una cosa a tener en cuenta es que los métodos de eventos jQuery no se activan / atrapan
load
enembed
etiquetas que contienen DOM SVG que se carga como un documento separado en laembed
etiqueta. La única forma que encontré para atrapar a unload
evento en estos fue usar JavaScript sin procesar.Esto no funcionará (he probado
on
/bind
/load
métodos):Sin embargo, esto funciona:
fuente
$img
?Ahora debe usar la
.on()
función para vincular eventos.fuente
fuente
Aquí hay un excelente tratamiento en la Red de Desarrollo de Mozilla (MDN) de este problema para JavaScript estándar (si no desea confiar en jQuery o entenderlo mejor en general):
https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener
Aquí hay una discusión sobre el flujo de eventos desde un enlace en el tratamiento anterior:
http://www.w3.org/TR/DOM-Level-3-Events/#event-flow
Algunos puntos clave son:
fuente