![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 86 Pomógł: 20 Dołączył: 20.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Uczę się jQuery i stwierdziłem, że zrobię prostą galerię jako moduł do Joomli. Założenie - jeden obrazek, na dole miniaturki i po naciśnięciu zmieniają główny. Nie wiem, co robię źle, ale jQuery zamiast zadziałać .click, w ogóle się nie odzywa. Pomoże ktoś znaleźć błąd?
I odpowiadający fragment kodu HTML:
Z góry dzięki za pomoc, bo mnie już oczy bolą od tego szukania :/ -------------------- -wdev-
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Pokaż to gdzies na żywo.
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 86 Pomógł: 20 Dołączył: 20.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wrzuciłem to na żywo tutaj. A tu jest tutorial, z którego korzystałem. I choćbym się wysilał nie wiem jak, to nie jestem w stanie znaleźć różnicy, która mogłaby sprawić, że mój skrypt nie działa... Tak, wiem, że tamto jest na starej wersji jQuery, ale na tamtej też już próbowałem.
-------------------- -wdev-
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 561 Pomógł: 72 Dołączył: 15.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie działa Ci dlatego, że kod JS wykonuje Ci się jeszcze zanim wyświetlisz linki i obrazki, zdarzenia 'click' nie są wtedy podczepiane do żadnego z tych elementów.
Ten kod:
daj na samym końcu tej strony, albo zostaw tam gdzie jest, ale zmień na:
Ewentualnie zamiast .click(function(){...}) możesz dać .live('click', function(){...}) -------------------- Nawet świnka może wejść na drzewo kiedy jest chwalona :)
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 86 Pomógł: 20 Dołączył: 20.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ok, chyba nie doczytałem podręcznika, a koniecznie chciałem zachować enkapsulację (to moduł do Joomli, więc wolę, żeby kod był odporny). Myślałem, że podczas enksapsulacji automatycznie się wykona, tak jak skórt $(function(){}). No nic, człowiek uczy się całe życie ^^ Dzięki za pomoc.
-------------------- -wdev-
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 561 Pomógł: 72 Dołączył: 15.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
jak już napisałem,
Ewentualnie zamiast .click(function(){...}) możesz dać .live('click', function(){...}) To Ci pozwoli zostać przy dotychczasowym zapisie jeśli Ci aż tak na nim zależy. -------------------- Nawet świnka może wejść na drzewo kiedy jest chwalona :)
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 86 Pomógł: 20 Dołączył: 20.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie ma potrzeby robić .live, wystarczy:
Jest enkapsulacja i jest (document).ready. Mój problem już jest rozwiązany, ale może komuś innemu się przyda ![]() -------------------- -wdev-
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
To też zależy.
![]() Na oficjalnym blogu jQuery był ostatnio artykuł, który mówił o tym, że w części przypadków lepiej używać live zamiast wrappera do DOMContentLoaded. Dotyczy to np. generowania dużego drzewa DOM przez serwer. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 17:15 |