data change attribute addattr javascript jquery html event-bubbling propagation

javascript - change - jquery id value



Capturando y burbujeando usando jQuery (2)

Evento de burbujeo que comenzará a ejecutarse desde el elemento más interno al elemento más externo.

Captura de eventos que comenzará a ejecutarse desde el elemento externo al elemento más interno.

Pero jQuery utilizará eventos de burbujeo. Podemos lograr la captura de eventos con:

$("body")[0].addEventListener(''click'', callback, true);

El tercer parámetro en el addEventListener que le dirá al navegador si debe realizar el borrado de eventos o la captura de eventos.

Por defecto es falso.

Si es falso entonces tomará evento burbujeando. Si es cierto entonces tomará la captura de eventos.

Soy nuevo en jQuery y estoy tratando de entender el concepto de captura y burbujeo.

He leído muchos artículos, pero la mayoría describe la propagación de eventos para Javascript.

Asumamos que tenemos el siguiente código HTML:

<div id="outter"> outter <div id="inner"> inner </div> </div>

La captura es la fase en la que bajamos los elementos DOM y el burbujeo es cuando subimos.

En Javascript puede decidir qué camino seguir (usando parámetros verdaderos o falsos):

element.addEventListener(''click'',doSomething,true) --> capture phase element.addEventListener(''click'',doSomething,false) --> bubble phase

¿Hay algo similar para jQuery para indicar qué camino seguir que no sea el de JavaScript?

¿También usa jQuery una fase predeterminada? Por ejemplo burbuja?

Porque usé el siguiente código para probar esto:

css

<style> div { border: 1px solid green; width: 200px; } </style>

jQuery

<script> $(document).ready(function(){ $(''div'').click(function(){ $(this).animate({''width'':''+=10px''},{duration: 3000}) }); }); </script>

Parece que cuando hago clic en el div externo, solo ese div anima a un div más grande. Cuando hago clic en el div interno, ambos div se animan a divs más grandes.

No sé si estoy equivocado, pero esta prueba muestra que el método de propagación predeterminado del navegador es una burbuja.

Por favor, corríjame si estoy equivocado.


jQuery utiliza eventos de burbujeo. Si desea agregar un controlador de eventos que use el modelo de captura, debe hacerlo explícitamente utilizando addEventListener . La captura de eventos jQuery muestra cómo puede hacer esto utilizando los selectores jQuery.