Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]jQuery - skrypt na przesuwające się zdjęcia
Forum PHP.pl > Forum > Przedszkole
klapaucius
Witam. Męczę się od wczoraj z dość dziwnym do stwierdzenia przyczyny problemem. Znalazłem gdzieś w sieci fajny skrypt napisany w jQuery do ładnej prezentacji zdjęć. Jest to tzw. "karuzela". Wygląda to tak:


W głównym piku html dodałem prosty kod jQuery, dzięki któremu po kliknięciu w dany obrazek, ma wyświetlać alert.

Kod
                                $('a.link').click(function(e){
                                    e.preventDefault();
                                    alert('test');
                                });



No i tak się dzieje... przez najbliższe kilka kliknięć.. A potem przestaje to działać. Dzieję się to, gdy przewinie się kilka obrazków na raz.. zupełnie nie mam pojęcia dlaczego tak jest. Gdyby ktoś znalazł chwilkę i looknął w kod byłbym wdzięczny. Link do skryptu mojego:
http://speedy.sh/gs6Nd/karuzela-test.zip
SmokAnalog
Kodu nie będę ściągał, ale wydaje mi się, że przyczyną jest usuwanie elementów przez karuzelę. Robisz:
[JAVASCRIPT] pobierz, plaintext
  1. $("a.link").click(function() {...});
[JAVASCRIPT] pobierz, plaintext

To dodaje zdarzenie kliknięcia dla aktualnie istniejących elementów <a> z klasą "link". Karuzela pewnie nie chce przechowywać wszystkich elementów naraz w drzewie i jakoś tam sprytnie sobie nimi rotuje. Spróbuj tak:
[JAVASCRIPT] pobierz, plaintext
  1. $("div.karuzela").on("click", "a.link", function() {...});
[JAVASCRIPT] pobierz, plaintext

Zakładając, że <div> z klasą "karuzela" to najbliższy wspólny element dla wszystkich <a> z klasą "link". Zamień to div.karuzela na właściwy element.
klapaucius
Cytat(SmokAnalog @ 6.07.2013, 17:30:46 ) *
Kodu nie będę ściągał, ale wydaje mi się, że przyczyną jest usuwanie elementów przez karuzelę. Robisz:
[JAVASCRIPT] pobierz, plaintext
  1. $("a.link").click(function() {...});
[JAVASCRIPT] pobierz, plaintext

To dodaje zdarzenie kliknięcia dla aktualnie istniejących elementów <a> z klasą "link". Karuzela pewnie nie chce przechowywać wszystkich elementów naraz w drzewie i jakoś tam sprytnie sobie nimi rotuje. Spróbuj tak:
[JAVASCRIPT] pobierz, plaintext
  1. $("div.karuzela").on("click", "a.link", function() {...});
[JAVASCRIPT] pobierz, plaintext

Zakładając, że <div> z klasą "karuzela" to najbliższy wspólny element dla wszystkich <a> z klasą "link". Zamień to div.karuzela na właściwy element.


Jeśli faktycznie nie zaglądałeś w kod, tylko tak z głowy to napisałeś.. To normalnie mega szacun dla Ciebie. Teraz działa jak należy. Niesamowite.. Masz u mnie dużego browara, bo męczyłem się z tym od wczoraj.


Dzięki jeszcze raz.

P.S.

Dla tych obędą w przyszłości szukac rozwiązania dla podobnego problemu, podaję to co zmieniłem w kodzie:

Kod
$("#boutique").on("click", "a", function(e){});
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.