2009-07-10 9 views

Antwort

2

Dies gibt dem Container zum Beispiel die Möglichkeit, ein Ereignis vor seinen Kindern zu sehen. Dies ist in vielen Fällen nützlich, z. Deaktivieren von Kindern, Hover-Animationen, Drag'n'Drop, Auswählen eines übergeordneten Containers, bevor das Kind-Widget usw. überprüft/angeklickt wird

Mit anderen Worten, IMO ist es einfacher, einen neuen Container für ein benutzerdefiniertes Benutzerverhalten zu erstellen Vorschau der Ereignisse (Tunneling), die auf Lager Widgets gehen, als benutzerdefinierte Widgets erstellen und einen Lagerbehälter (Blasenbildung) verwenden.

+0

Dont 100% mit dem Behälter Beispiel fühlen nehmen ein Beispiel verstehe ich :), wenn ich auf eine Schaltfläche ein Bild haben, ich würde nicht wollen, dass die Taste, um Das Mausereignis für die Klickverarbeitung statt umgekehrt? So sollte Button aus Bild sprudeln sollte zuerst statt Tunnel sein Auf ähnlichen Zeilen, wenn Tunneling Sinn machen würde vor dem Blubbern –

+0

Wenn Sie ein Bild innerhalb einer Schaltfläche haben und klicken Sie in den Bildbereich, wird die Schaltfläche das getunnelte Ereignis zuerst erhalten ('PreviewMouseDown'), während das Bild zuerst das Blasen-Ereignis erhält. Da das Tunneln vor dem Bubbling stattfindet, müssen Sie nur den Handler auf der Schaltfläche implementieren, unabhängig von seinem Inhalt. – Vlagged

2

Tunneling ist vor dem Bubbeling, da Event-Handler in der Elementbaumwurzel sind.

Das ist gut erklärt here in „Routing-Strategien“

+0

danke für den Doktor Kumpel, war hilfreich –