Aktywne Wpisy

bar125 +291
Kiedy kupiłeś kolejne akcje z GPW i odchodzisz od komputera
#gielda
#gielda

Skiter1991 +332
#filipchajzer ojej, znowu Chajzera szkalują ;(
Ciąg dalszy w komentarzu
Ciąg dalszy w komentarzu
źródło: 1000088849
Pobierz



Zazwyczaj grzebię w #php, a w #javascript i #jquery robię tylko proste rzeczy. Jednak teraz w projekcie mam taką sytuację, że muszę zrobić w #js coś bardziej złożonego.
Otóż mam taką sytuację, że na stronie mam głosowanie. Można oddać głos na produkt lub użytkownika. Po prostu użytkownik klika na przycisk i leci zapytanie do bazy danych. Głosować można na 2 sposoby:
1. Od razu na stronie
2. W otwartym lightbox (zawartość lightbox jest ładowania dynamicznie z #ajax)
Ponadto na stronie mam przyciski share facebooka i twittera, które tak samo jak głosowanie są:
1. ładowane od razu se stroną
2. ładowane w lightbox
Mam też możliwość zapisania się do newslettera (znowu używam ajax), ale też mogę zapisać się do newslettera po oddaniu głosu w lighbox.
Otóż sytuacja jest taka, że jak naprawię coś w jednym miejscu, to wykrzacza mi się w drugim, naprawię w drugim miejscu, to wykrzacza się w trzecim itd. w kółko.
Może mi ktoś poradzić w jaki sposób mam zrobić by:
1. Event na elemencie działał w lightbox.
2. Eventy nie dublowały się po otwarciu lightbox.
Może być jakiś tutorial z przykładami lub wystarczy rada w jaki sposób mam to napisać, aby działało poprawnie.
@isamaul: Niespecjalnie lubię pracę przy JS, ponieważ trudniej jest mi debugować kod i nie wszystko jest jawne. Po prostu wiem, że jeżeli ładuję HTML dynamicznie, to później muszę jakoś zainicjować eventy, na dynamicznie załadowanym HTMLu.
W każdym razie poczytam o delegacji eventów, może to akurat to co szukam.
O ten artykuł przeczytałem.
@Michuy: rada @isamaul była tym, czego potrzebowałem.
@anghelus: przepisałem JS korzystając z delegacji eventów. Jeżeli kogoś interesuje, to u dołu wrzuciłem już zmienione pliki: https://gist.github.com/miedzwin/ffe932a21813d4b350a3b1a480897caf
Jeszcze raz dzięki za pomoc :)
@mariecziek: pamiętaj, że jak coś po drodze zrobi event.stopPropagation(), to może Ci tego eventu nie wyłapać jeżeli wpiąłeś go w body