Aktywne Wpisy
Berbeluszka +27
Człowiek wchodzi przez życie pełen nadziei, a potem nagle bum. Starsi i wyżej postawieni nie zawsze mają rację, na przyjaciół nie można liczyć, najbliżsi okazują się najbardziej wyrachowanymi oszustami, faceci głosują na konfederację i oglądają patostreamy, dziewczyny się prostytuują w internecie ale na żywo też ci obciągną za blika na 30zl.
A potem człowiek nocami siedzi i szuka w internecie rozwiązania, jak nie gardzić wszystkimi dookoła
A potem człowiek nocami siedzi i szuka w internecie rozwiązania, jak nie gardzić wszystkimi dookoła
linca_pau +99
Jeśli ktokolwiek z Was łudzi się, że afera wizowa obije się na sondażach, to uwaga, nie odbije się. Mój tato niestety jest PiSowcem. Kiedyś to był facet z głową, który oglądał wszystkie kanały informacyjne żeby wyrobić sobie opinie. Teraz jedyny słuszny kanał leci w domu. Coś mu w głowie przeskoczyło i blokada. Orędzie Grodzkiego? Tego łapówkarza? No daj dziecko spokój. Czasami podejmuję rozmowy, żeby jakkolwiek do niego dotrzeć, to się zaczyna. Przejął
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.
$('.talent-quick-preview, .size-guide, .composition-guide, .delivery-return-guide, .vote, .footwear-preview').click(...)
Tutaj listener jest "nałożony" tylko dla istniejących elementów w DOM, czyli '.talent-quick-preview, .size-guide' itd.
Po załadowaniu danych do lightbox ajaxem to już nie zadziała. Musisz:
a) ponownie utworzyć listener na te elementy
b) zamiast listenera dodanego na te elementy utworzyć inny (tak jak
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