El orden de los eventos
Supongamos que otro elemento está anidado en un elemento y ambos tienen un manejador de eventos en OnClick. Si el usuario hace clic en el elemento 2, se activan los eventos de clic del elemento 1 y el elemento 2. Pero, ¿qué evento se activa primero? ¿Qué función de controlador de eventos se ejecutará primero? En otras palabras, ¿cuál es el orden en que ocurren los eventos? Como se muestra en la figura a continuación, cuando se hace clic en el área del elemento SPAN, se activarán los tres eventos de clic, pero ¿cuál es el orden?
<div onClick = "func1"> <p onClick = "func2"> <span onClick = "" func3> </span> </p> </div>
Dos modelos
Netscape y Microsoft tienen dos métodos completamente diferentes para manejar este evento:
• Netscape defiende que los eventos ocurrirán desde la capa más externa hasta el elemento más específico, y esta secuencia de eventos se llama tipo de captura
• Microsoft realiza eventos desde el elemento más interno y luego se extiende hacia arriba. Esta secuencia de eventos se llama tipo de burbuja
El orden de estos dos eventos es completamente opuesto. El explorador navegador solo admite eventos de burbujas, tanto Mozilla, Opera7 y Konqueror. La ópera más antigua y el ICAB no son compatibles
W3C
Cualquier evento que ocurra en el modelo de eventos W3C primero ingresa a la etapa de captura hasta que se alcanza el elemento objetivo y luego ingresa a la etapa de burbuja.
Para el desarrollo web normal, puede elegir si vincular la función del controlador de eventos en la etapa de captura o en la etapa de burbuja. Esto se logra a través del método AddEventListener (). Si el parámetro USECapture de esta función es verdadero, la función está vinculada en la etapa de captura, y viceversa, la función está vinculada en la etapa de burbuja.
element.addeventListener (evento, función, useCapture)
Parar burbujas
Durante el desarrollo normal, si desea evitar la propagación de eventos, puede hacerlo a través de un método.
En el modelo de Microsoft, debe establecer la propiedad CancelBubble del evento en verdad
Window.event.cancelBubble = True
En el modelo W3C debe llamar al método stopPropagation () del evento
E.stoppropagation ()
Llamar a estos métodos evitará que todas las burbujas se propagen hacia afuera. Solución de navegador cruzado:
function dosomething (e) {if (! e) {var e = window.event; E.CancelBubble = True; } if (e.stoppropagation) {e.stoppropagation (); }}La comprensión en profundidad del artículo anterior de las burbujas de eventos y la captura de eventos es todo el contenido que he compartido con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.