Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z biblioteką ajax i funkcjami php.
Forum PHP.pl > Forum > PHP
dariuszlorek
Witam,

wczoraj postanowiłem lekko zmodyfikować wygląd mojej strony i napatoczył się dość drażliwy błąd. Mianowice stworzyłem shoutbox, który odpala się po kliknięciu na obrazek w oddzielnym oknie z efektem podobnym do tego znanego z lightbox. Całość działa na podstawie wtyczki Simple Shoutbox do Wordpress i wcześniej działało dobrze. Teraz gdy ktoś pisze swoją wiadomość, pojawia się ona dwa razy. Nie wiem czym spowodowany jest taki efekt. Może ktoś ma jakiś pomysł?

Jak to obejść?

Mowa o stronie:
- http://www.guildwars2.com.pl/

Shoutbox jest w prawym menu 2 obrazek od góry.
Avatarus
ciężko określić co jest nie tak, nie mając dostępu do źródła, nie wiedząc co zmodyfikowałeś, czy tylko wygląd czy może jakieś skrypty...
dariuszlorek
Shoutbox generują dwa pliki:
- http://dl.dropbox.com/u/293157/www/ajax_shoutbox.php
- http://dl.dropbox.com/u/293157/www/ajax_shoutbox_process.php

Umieszczam go na stronie w panelu widgetów, a sam panel umieszczam poprzez taki kod:
- http://dl.dropbox.com/u/293157/www/sidebar.php

W skrypcie nie zmieniałem niczego w składni. Jedynie dodałem wyświetlanie dzięki jquery. Głównie za pomocą tego, że ukrywam wynik poprzez display: none;, a po kliknięciu na obrazek jquery pokazuje wynik w wyskakującym oknie - co widać w pliku sidebar.php który załączyłem wyżej.
everth
Dwa razy ładujesz jQuery to po pierwsze (ale prawdopodobnie to nie problem). Nie mogę robić wpisów więc podejrzewam że może być to problem z wielokrotnym bindowaniem tego samego zdarzenia JS (np. dodaj nowy wpis) do tego samego elementu (wtedy zdarzenia wywołują się po kolei, mimo że robią to samo). Najlepiej byłoby gdybyś przy niszczeniu fancybox usuwał powiązane z nim zdarzenia np.
[JAVASCRIPT] pobierz, plaintext
  1. $("#test").fancybox({
  2. 'titlePosition' : 'inside',
  3. 'transitionIn' : 'elastic',
  4. 'transitionOut' : 'elastic',
  5. 'onClosed' : function() {$(this).unbind();}
  6. });
[JAVASCRIPT] pobierz, plaintext

Nie wiem jaki kod się wykonuje w tym shoutboxie więc powyższe może nie zadziałać.
dariuszlorek
Dodałem twoją zmianę. Jak na razie bez zmian :/...

PS: Co do 2krotnego ładowania jQuery to przez wtyczkę do WP. Shoutbox ma swój oddzielny jQuery jeszcze nie odciełem pępowiny.
everth
Spróbuj jeszcze tak:
[JAVASCRIPT] pobierz, plaintext
  1. 'onClosed' : function() {
  2. $('#fancybox-inner,#fancybox-inner *').unbind();
  3. $(this).unbind();
  4. }
[JAVASCRIPT] pobierz, plaintext

możliwe też że problem nie leży tutaj. Ale bez dodawania wpisów (nie mogę zlokalizować JS odpowiedzialnego za ten ajax) to sobie możemy testować.
dariuszlorek
Nic nie dało dodanie tego do kodu... Udostępniłem Ci możliwość pisania jako gość.
everth
Zmodyfikowałem ci na sucho shoutBox - zobacz czy działa : link - wcześniej zrób backupa!
dariuszlorek
Ogromne dzięki! Teraz shoutbox działa aż miło winksmiley.jpg...
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.