witam, napisałem sobie stronę www w oparciu jQuery. Używałem funkcji .load() do wymiany głównej części tej strony no i na jednej z tych podstron mam galerię do której używam pluginu jQuery lightBox z tym że jeśli załaduje się AJAX'em to lightbox nie działa, a jeśli wejdę przez link na podstronę wszytko jest ok. Czym to może być spowodowane?
Daj link do strony. Wróżkami nie jesteśmy, a jak się dzieje takie coś, to trzeba po prostu sprawdzić parę rzeczy i zobaczyć co jest nie tak.
Daj też dokładną instrukcję co trzeba zrobić, żeby wszystko było OK i co trzeba zrobić (tj. jak włączyć ten Ajax), żeby się to spieprzyło. Dodaj też dokładną informację, co jest nie tak. Nie "nie działa", tylko konkretnie -- np. przeglądarka rzuca jakiś błąd. A przynajmniej powiedz jakie są symptomy, że to "nie działa". Tj. powiedz co by się stało jakby działało, a co się nie dzieje.
Lightbox czasem powoduje problemy. Spróbuj innej wersji jak np. shadowbox.
Zapewne konflikt z funkcją o urczej nazwie $.
@Demonical Monk:
No bardzo możliwe, tylko co ten konflikt powoduje? Sam plugin jQuery.Lightbox przecież nie niszczy funkcji $... Jakby autor tematu dał link do strony, to można by wywęszyć co jest nie tak.
Witam, tak jak powiedział Buka77 zmieniłem lightboxa na shadowboxa ale nadal jest to samo. Tu jest adres strony:
http://dajtyp.x.pl/test/
Zakładka ulotki i kliknąć na zdjęcie. Przenosi na zakładkę ze zdjęciem. Jeśli z kolei wejdziemy przez:
http://dajtyp.x.pl/test/?page=ulotki
to shadowBox jak najbardziej działa. To samo było z LightBox'em
Ten shadow box nie dołącza przypadkiem jakiś zdarzeń w locie? Może po prostu nie ogarnia tego że zawartość strony się dynamicznie zmieniła i trzeba jeszcze raz callnąć init()...
à propos, tam w okolicach init shadowboxa zasada DRY się kładnia.
A tak dokładniej jakie te zdarzenia mógłby dorzucać w locie? Próbuję do tych metod wpisać inicjację shadowBox'a ale to też nic nie daje. Jeśli chodzi o DRY to to jest napisane wstępnie ;) potem sobie zrobię jedną funkcję która będzie przechwycać id odnośnika i wymieniać treść na odpowiednią ;-) Na razie chodzi mi o to żeby ten shadowBox zaczął działać.
czekaj, ty ajaxem ladujesz same linki typu:
<a href="link.jpg" rel="lightbox">miniaturka albo cos</a>
<a href="link.jpg" rel="lightbox">miniaturka albo cos</a>
<a href="link.jpg" rel="lightbox">miniaturka albo cos</a>
i chcesz zeby to otwieralo sie w lightboxie?
no to eventy mu musisz zrebindowac, bo eventy sie dodaja do istniejacych juz elementow dom..
po sukcesie ajaxa po prostu dodaj to wywolanie lightboxa tj np:
$('a[rel=lightbox]').lightBox();
czy jak tam masz i powinno hulac
No nie powiem bo hula ;-) tylko że lightbox, shadowbox niestety nawet i po takiej kuracji. Ale najważniejsze że Lightbox działa :D Dzięki!
Czarna magia ;)
$('a[rel=lightbox]').lightBox();
W jaki sposób zastosować rozwiązanie .... ?
Po kilku godzinach walki doszedłem do rozwiązania:
function MyUpdate(plik)
{
new Ajax.Updater('text', plik, {asynchronous: false, evalScripts:true, onComplete: initLightbox});
return false;
}
Należy dokonać zmian w exchange.js ;) to wszystko, a tyle problemu ....
dzek69 dzięki za wskazówki i pomoc ;)