Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ajax jQuery zabija działanie FancyBox
Forum PHP.pl > Forum > Po stronie przeglądarki
fluffy
Witam,

Chciałem na swojej stronie umieścić news'y w taki sposób, że wyświetlane byłyby po 3 przy użyciu FancyBox. I wszystko byłoby w porządku gdyby nie fakt że postanowiłem zrobić przycisk "starsze" "nowsze" i wykorzystać do tego AJAX aby przeładował tylko ten element na stronie... Wszystko ładnie i pięknie tylko po załadowaniu kolejnych wiadomości poprzez AJAX, gdy klikam na link'a, który jest poprawny i powinien uruchomić okno z danym news'em, to nic się nie dzieje sad.gif

Kod za pomocą którego przesyłam dane w AJAX to:

  1. <script type="text/javascript">
  2.  
  3. //zrodlo - plik z zawartoscia do zwrocenia
  4. //cel - div na stronie do ktorego laduje dane
  5.  
  6. function getData(zrodlo, cel) {
  7.  
  8.  
  9. $.post(zrodlo, function(returned_data)
  10. {
  11. //alert(returned_data);
  12. $("#test").html(returned_data);
  13. });
  14.  
  15. }
  16.  


Teoretycznie się nic nie powinno kłócić ze sobą ponieważ i ta funkcja i FancyBox jest oprarta o jQuery, a jednak. Nie znam jQuery na tyle by sobie poradzić z tym.
Proszę o jakieś sugestie. Może to jakiś drobny błąd.

Pozdrawiam


__________________________________________

Sprawdziłem jeszcze czy zadziała FancyBox jeżeli nie będę korzystać z ajax'a tylko umieszczę w odpowiednim div'ie za pomocą innerHTML link który powinien wywołać okno FB z newsem... ale też bez powodzenia. Tak więc zakładam że chodzi o samo umieszczenie zwróconej wartości do jakiegoś div'a. Czy istnieją jeszcze jakieś funkcje w JS które wrzucają treści do konkretnych div'ów? Lub może ktoś ma jakiś pomysł teraz jak to rozwiązać?
lord_t
Pokaz jak przypisujesz akcje do linków. Jestem prawie pewien, że rozwiązaniem Twojego problemu jest skorzystanie z live().

Edit: Dobra, wiem już na 100% o co biega. live() by pomogło, ale dla standardowego eventu - u Ciebie najprostszym rozwiązaniem będzie:
w callbacku ajaxa (funkcja onSuccess) dla wczytanych elementów uruchomić .fancybox().
fluffy
akcję do linków przypisuję tak:

<a id="ajax" href="#wiadomosc">wiadomość 1</a>

Czy mógłbyś jakoś jaśniej napisać mi jak uruchomić to .fancybox() dla wczytanych elementów? Nie jestem dobry w jQuery ani w Javie ale wiem że to kolejne rzeczy które koniecznie musze opanować i to jak najszybciej...
lord_t
Kod
function getData(zrodlo, cel) {


    $.post(zrodlo, function(returned_data)
         {
          $("#test").html(returned_data);
          $("#test").fancybox(/*jesli w 1. wywolaniu fancyboxa masz jakieś parametry to tu je też daj */);
         });

}
fluffy
Dzięki Panie smile.gif

Uratowałeś mi nockę biggrin.gif siedziałem nad tym już 3 godziny i chyba przejrzałem wszystkie tematy na forach w poszukiwaniu odpowiedzi smile.gif
Wiem to już na bank że muszę uzupełnić wiedzę o JS a już na pewno jQuery bo widzę, że jest świetne smile.gif sam do tej pory pracowałem tylko w oparciu o PHP, CSS, bazy i podstawy JS...

Może na PW zaproponowałbyś jakieś książki czy serwisy do przestudiowania...

Pozdrawiam i jeszcze raz dzięki smile.gif
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.