Wykrycie kliknięcia tylko na rodzica

Wykrycie kliknięcia tylko na rodzica
NO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 430
0

Cześć,
Mam problem z js'owym clickiem :D Chodzi mi o wykrycie kliknięcia tylko na rodzicu.

Kopiuj
<div class="parrent">
    <div class="child">
        asd
    </div>
</div>
Kopiuj
.parrent{
    position: fixed;
}

Klikam na child nic się nie dzieje, klikam na parrent wykonuje się akcja. Niestety aktualnie cokolwiek kliknę (parrent ma width i height 100%) jest wykrywane jak kliknięcie na rodzica.

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
2

Przypisz dziecku handler zdarzenia kliknięcia i wywołaj tam event.stopPropagation();

DE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1788
3

@NickOver Przy tej okazji polecam zapoznać się z Bubbling and capturing, żebyś wiedział dlaczego rozwiązanie @Patryk27 działa.

Dodatkowo istnieje alternatywne rozwiązanie, które moim zdaniem jest bardziej czytelne. Możesz sprawdzić, czy e.target === e.currentTarget i jeżeli nie to nie robić nic. e.currentTarget to element, do którego przypisałeś handler, a e.target to element w który kliknąłeś. W przypadku kliknięcia na rodzica jest to jeden i tem sam element.

DEMO

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.