Was ist der einfachste Weg, um die Ausbreitung von Mausereignissen in Angular 2 zu stoppen? Sollte ich ein spezielles $event
Objekt passieren und stopPropagation()
mich selbst anrufen oder gibt es einen anderen Weg. Zum Beispiel kann ich in Meteor einfach false
vom Ereignishandler zurückkehren.
238
@HostListener("mousedown", ["$event"]) public onMousedown(event: any): void { event.stopPropagation(); }
Am einfachsten ist es, die Stop-Propagierung für einen Ereignishandler aufzurufen.
$event
funktioniert in Angular 2 genauso und enthält das laufende Ereignis (durch einen Mausklick, ein Mausereignis usw.):Auf dem Event-Handler können wir dort die Weitergabe stoppen:
quelle
<button confirmMessage="are you sure?" (click)="delete()">Delete</button>
und in meiner Anweisung:(click)="confirmAction($event)
dannconfirmAction(event) { event.stopPropagation(); }
;event
in der Handler-Funktion behandeln,stopPropogation()
nicht verfügbar ist. Ich musste es richtig im Markup machen: `(click) =" foo (); $ event.stopPropogation () "Das Aufrufen
stopPropagation
des Ereignisses verhindert die Weitergabe:Für
preventDefault
einfach zurückfalse
quelle
;
am Ende nicht. Ich werde das ändern.false
<3Hinzufügen zur Antwort von @AndroidUniversity. In einer einzigen Zeile können Sie es so schreiben:
quelle
Wenn Sie sich in einer an ein Ereignis gebundenen Methode befinden, geben Sie einfach false zurück:
quelle
false
AnrufepreventDefault
nichtstopPropagation
.preventDefault
genannt. github.com/angular/angular/blob/… , github.com/angular/angular/blob/…Das hat bei mir funktioniert:
mycomponent.component.ts:
mycomponent.component.html:
quelle
Ich musste
stopPropigation
undpreventDefault
um zu verhindern, dass ein Knopf einen Akkordeongegenstand erweitert, über dem er saß.So...
quelle
Für IE (Internet Explorer) hat nichts funktioniert. Meine Tester konnten mein Modal brechen, indem sie auf die Schaltflächen dahinter im Popup-Fenster klickten. Also habe ich auf einen Klick auf mein modales Bildschirm-Div gewartet und mich erneut auf eine Popup-Schaltfläche konzentriert.
quelle
ich benutzte
Kurz gesagt, trennen Sie einfach andere Dinge / Funktionsaufrufe mit ';' und füge $ event.stopPropagation () hinzu
quelle
Ich habe gerade eine Angular 6-Anwendung eingecheckt. Event.stopPropagation () funktioniert mit einem Ereignishandler, ohne $ event zu übergeben
quelle
Deaktivieren Sie den href-Link mit JavaScript
Wie es auch in TypeScript mit Angular funktionieren sollte (Meine Version: 4.1.2)
Vorlage Typoskriptquelle
Durch Hinzufügen der Funktion false after wird die Ereignisausbreitung gestoppt
quelle
Dies löste mein Problem, indem ich verhinderte, dass ein Ereignis von einem Kind ausgelöst wurde:
quelle
Versuchen Sie diese Anweisung
Verwendung
quelle