![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 11 Dołączył: 11.10.2004 Skąd: 3c Ostrzeżenie: (0%) ![]() ![]() |
Witam napisalem sobie taki kod na przerzucanie zdjec i dziala niestabilnie.
Skrypt dziala tak, ze pobiera z id nr i nr ten wskazuje na zrodlo w atrybucie rel ktore jest wyswietalne jako duze. Stworzylem nawigacje next i back ktora sie zapetla oraz przycisk close do zamkniecia powiekszonego zdjecia. Problem dokladnie wyglada to tak, ze skrypt dziala w porzadku jesli przerzucam zdjecia do tylu lub do przodu ale w granicach ilosci zdjec od 1 do 4 a jesli cofne z pierwszego zdjecia lub dam do przodu z 4 to skrypt zaczyna wyrzucac zamist zrodla undefined. Kolejny problem zaczyna sie wtedy gdy uzyje przycisku close - i ponownie wybiore zminiaturek zdjecie do powiekszenia - wtedy nawigacja next i back szwankuje... wywala czasami undefined. Może ktoś zna lepszy sposob pobierania numeru z wybranego diva (w moim przypadku id="fotx"), np bez użycia atrybutu id? Ja w tej chwili musze wyciagnac tresc z atrybutu id oraz wyciagnac usuwajac przednie "z" numer, nastepnie formatuje tresc na integer (parseInt) i dopiero moge stosować dzialania +/-. Bardzo prosze zeby ktos pomogl mi ogarnac problem.
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 135 Dołączył: 18.11.2010 Skąd: Wschowa Ostrzeżenie: (0%) ![]() ![]() |
Witaj ponownie (IMG:style_emoticons/default/smile.gif)
Zobacz co się dzieje w Twoim skrypcie: 1. Klikam na miniaturkę 1 i w tym momencie do kliknięć next, back, stop zostają przypisane funkcje obsługujące zdarzenia. 2. Klikam kolejny raz na miniaturkę, lecz teraz na miniaturkę 2. Po raz kolejny do klawiszy next, back, stop zostają przypisane funkcje obsługi zdarzeń. 3. Teraz klikam na przycisk next. Co się dzieje? A to, że zostaje wykonana funkcja stworzona w punkcie 1. i jednocześnie zostaje wykonana funkcja stworzona w punkcie 2. To oznacza, że za każdym razem, gdy kliknę na miniaturkę - tworzę nową, kolejną funkcję obsługującą to zdarzenie. Można by zdefiniować obsługę zdarzeń dla przycisków od razu, ale my chcemy mieć klawisze aktywne dopiero po kliknięciu miniaturki. Za to po kliknięciu stop chcemy mieć klawisze nieaktywne. Zrobimy to tak, że po kliknięciu na miniaturkę sprawdzamy czy istnieje obsługa jakichkolwiek zdarzeń dla pierwszego przycisku(jeśli istnieje dla pierwszego to i dla reszty). Jeśli istnieje to nic nie robimy, jeśli nie istnieje - to przypisujemy zdarzenie. Realizujemy to za pomocą takiego warunku:
Przy kliknięciu na klawisz stop chcemy, aby wszystkie zdarzenia z trzech przycisków zostały usunięte. A więc zmieniamy postać funkcji obsługi zdarzenia:
Całość zrealizowana tutaj: http://jsfiddle.net/pqdQz/8/show/ Kod tutaj: http://jsfiddle.net/pqdQz/8/ Pozdrawiam. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 06:06 |