2014-10-11 13 views
5

Dodałem detektor zdarzeń transitionend do . Ten div ma dzieci, które mają przejście na niektóre elementy. Chcę, aby zdarzenie transitionend wystrzeliło tylko dla elementu, do którego go dodałem, czy jest to błąd? lub oczekiwane zachowanie? Jak zrobić ogień tylko wtedy, gdy dodałem do niego słuchacza?Wysyłanie detektora TransitionEnd na elementach potomnych

Odpowiedz

9

Zdarzenia są domyślnie przepełnione, , co oznacza, że ​​zostaną "przesłane" do elementu nadrzędnego, dopóki nie uderzą w ciało lub uchwyt, który je zatrzyma.

Można:

  • filtra przez event's target będąc pewnym, że to element jesteś targetting.
  • Słuchanie wydarzenia z udziałem dzieci i event.stopPropagation() na ich temat. W ten sposób nie będą już bzykać się z rodzicem.

Jeśli pokażesz nam jakiś kod, łatwiej będzie ci pomóc, w zależności od twojej obecnej implementacji.

+0

Dzięki dla tych opcji było miło! Poszedłem z event.stopProp – Noitidart

5

Proces ten nazywa się Event Bubbling. Możesz zrobić, to wykryć bulgotanie za pomocą funkcji obsługi zdarzeń lub zapobiec bulgotaniu poprzez zatrzymanie propagacji. Można to zrobić przez

event.stopPropagation() 

W IE beofore 9.

Można to zrobić jako

window.event.cancelBubble = true; 

Proszę mieć szczegółowy wygląd here

+0

Przyjemność ....;) –

+1

Proszę, nie przejmujcie się, ale przyjąłem odpowiedź pozostałych facetów, gdy pisał pierwszy. Ale twoje informacje i wyjaśnienia dotyczące IE9 są bardzo doceniane. – Noitidart

+2

to w porządku, człowieku ... to nie ma znaczenia, aby zaakceptować odpowiedź. Sprawa jest pogodna, jeśli pomogła ci lub nie i cieszę się, że pomogła ci .. :) Cheers..Hapy kodowanie –

Powiązane problemy