Saltar al contenido

Detener la propagación del evento del mouse

Si hallas algún error en tu código o proyecto, recuerda probar siempre en un ambiente de testing antes aplicar el código al proyecto final.

Solución:

Si desea poder agregar esto a cualquier elemento sin tener que copiar/pegar el mismo código una y otra vez, puede crear una directiva para hacerlo. Es tan simple como a continuación:

import Directive, HostListener from "@angular/core";
    
@Directive(
    selector: "[click-stop-propagation]"
)
export class ClickStopPropagation

    @HostListener("click", ["$event"])
    public onClick(event: any): void
    
        event.stopPropagation();
    

Luego simplemente agréguelo al elemento en el que lo desea:

Stop Propagation

El más simple es llamar a detener la propagación en un controlador de eventos. $event funciona igual en Angular 2 y contiene el evento en curso (mediante un clic del mouse, un evento del mouse, etc.):

(click)="onEvent($event)"

en el controlador de eventos, podemos detener la propagación:

onEvent(event) 
   event.stopPropagation();

Vocación stopPropagation en el evento impide la propagación:

(event)="doSomething($event); $event.stopPropagation()"

Para preventDefault solo regresa false

(event)="doSomething($event); false"

El enlace de eventos permite ejecutar múltiples sentencias y expresiones para ser ejecutadas secuencialmente (separadas por ; como en *.ts archivos
El resultado de la última expresión causará preventDefault ser llamado si es falso. Así que tenga cuidado con lo que devuelve la expresión (incluso cuando solo hay una)

Te mostramos las comentarios y valoraciones de los lectores

Puedes añadir valor a nuestro contenido informacional participando con tu experiencia en las críticas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *