Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS/jQuery] Wielokrotne wywołanie funkcji
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
evilpr0
Siemka! Szybko opiszę mój problem. Robię na swojej stronie tzw. lightbox'a i przycisk wyłączający go. Lightbox ma się otwierać przy kliknięciu na ikonę wiadomości. Następnie krzyżyk w prawym-górym rogu okienka, które otwiera się nad lightbox'em ma wyłączać cały lightbox. Natrafiłem niestety na problem. Lightbox otwiera się perfekcyjnie, jednak jego zawartość jest do niego przypisywana za pomocą funkcji jQuery (.html), kod, który jest przypisywany wygląda tak:

  1. $('#Lightbox').html('<div id="Lightbox_Box">Wysyłanie wiadomości <span style="float: right">odbiorca: '+Do+'</span><div id="Zamknij_Lightbox" class="Zamknij" onclick="zamknijlightbox();"></div><br /><br /><form name="wyslijwiadomosc"><textarea name="trescwiadomosci" style="width: 98%; height: 150px;"></textarea></form><br /><input type="button" class="Przycisk_Submit" name="wyslij" value="Wyślij"/></div>');
  2. }


Jest to już kod z dodanym zdarzeniem onclick, ponieważ gdy przypiszę tym sposobem ten oto kod za pomocą jQuery, nie jestem w stanie wykorzystać div'u 'Zamknij_Lightbox' przy pomocy jQuery do zamknięcia całego lightbox'u, dlaczego - nie mam pojęcia. Tak więc dodałem funkcję na onclick, która ma zamykać lightbox. Wygląda ona tak:

  1. function zamknijlightbox() {
  2. $('#Lightbox_Box').fadeOut('fast');
  3. $('#Lightbox').fadeOut('fast');
  4. $('body').css('overflow', 'auto');
  5. }


Oczywiście lightbox się zamyka, lecz pojawia się kolejny problem. Funkcja ta nie może zostać wywołana ponownie, gdy klikam na ikonę wiadomości nic się nie dzieję. Dodam, że otwieranie lightbox'u, jest również operowane zdarzeniem onclick. Tak więc proszę was o pomoc z tym problemem, nie mam zbyt dużego pojęcia o wielokrotnym wywoływaniu funkcji w JavaScript.
Pozdrawiam, Evil.
jacobson
Przeczytalem Twoj problem ale nie jestem pewien co chcesz uzyskac. Czy chcesz uzyskac cos takiego ze po zamknieciu i wcisnieciu ponownym przycisku - ten lightbox pojawia sie ponownie ? Jezeli tak to sprobuj Jquery toggle albo sprawdzaj jezeli w stylu diva lightboxa jest display:none to wywolaj show() a jak nie to hide().
Jezeli nie o to chodzi to napisz jeszcze raz dokladniej tongue.gif

Mozesz ta Twoja metoda wyswietlania lightboxa troche zmienic i ta funkcje dodajaca do html usunac

  1. $('#Lightbox').html('<div id="Lightbox_Box">Wysyłanie wiadomości <span style="float: right">odbiorca: '+Do+'</span><div id="Zamknij_Lightbox" class="Zamknij" onclick="zamknijlightbox();"></div><br /><br /><form name="wyslijwiadomosc"><textarea name="trescwiadomosci" style="width: 98%; height: 150px;"></textarea></form><br /><input type="button" class="Przycisk_Submit" name="wyslij" value="Wyślij"/></div>');
  2.  
  3. }


i zamiast tego poprostu wstawic tego <div id="Lightbox_BOx"> tylko ze w stylach dac mu display:none; i teraz wraz ze zdarzeniem onclick przycisku wiadomosci dac na niego show(),a z krzyzykiem hide();

pozdrawiam
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.