Jquery - chowanie elementu za ekran - switchClass nie działa.

0

Robię element który ma działać tak jak wiele reklam, czyli po kliknięciu w odpowiednie pole elementu chowa on się za ekran i wystaje tylko to pole które zmienia kolor oraz zawartość. Chciałem użyć switchClass zmienić klasę a tym samym zmienić tło pola i dowiązaną do niej funkcję (z wsunięcia na wysunięcie). Ale nie wiem czemu samo przełączanie klasy mi nie działa.

Oto kod
https://jsfiddle.net/a7hvy771/1/

0

Może dlatego, że w jQuery nie ma czegoś takiego jak .switchClass()?

1

Ogarnij jak działają zdarzenia, ich propagacja i bubbling.

Zdarzenia przypinasz do ELEMENTÓW, a nie do selektora elementu. Jeżeli przypniesz zdarzenie do elementu z klasą A, to on potem może nie mieć klasy w ogóle. albo możesz sobie zmieniać tą klasę na klasę B - a zdarzenie wciąż zostanie aktywne, bo jest przypięte do ELEMENTU.

Trochę inaczej działa delegacja zdarzeń (choć to tak naprawdę też zwykłe zdarzenie, tylko wykorzystuje propagację). Tu przypinasz zdarzenie do elementu nadrzędnego, którego następcy/dzieci także odbierają to zdarzenie. W skrócie: przypinasz zdarzenie np. do <body>, a w obsłudze zdarzenia sprawdzasz, którego elementu to tak naprawdę dotyczy (a więc możesz zaprogramować zachowanie w zależności od bieżącej klasy).

Nic z tego nie rozumiesz, potrzebujesz przykładów? Tu masz wszystko pięknie opisane: http://www.smashingmagazine.com/2013/11/an-introduction-to-dom-events/

0

Ogarnę. Ogólnie muszę bardziej przysiąść kiedyś do jquery bo z tego jestem kompletna noga. Tymczasem z problemem sobie poradziłem tak że po prostu przerzuciłem funkcję toggle na całą kolumnę i to między nimi się teraz przełączam.

https://jsfiddle.net/3q0dzeeq/1/

1 użytkowników online, w tym zalogowanych: 0, gości: 1