Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS] błędne wywoływanie funkcji
ellheat
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 1.11.2013
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Witam. Od pewnego czasu zmagam się z pewnym problem. Chodzi o to, że mam taki oto kod napisany w js, który nie wymaga przeładowywania strony oraz dodaje animację chowania contentu:

[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function() {
  2.  
  3. var hash = window.location.hash.substr(1);
  4. var href = $('#nav li a').each(function(){
  5. var href = $(this).attr('href');
  6. if(hash==href.substr(0,href.length-5)){
  7. var toLoad = hash+'.html #content';
  8. $('#content').load(toLoad)
  9. }
  10. });
  11.  
  12. $('#nav li a').click(function(){
  13.  
  14. var toLoad = $(this).attr('href')+' #content';
  15. $('#content').slideUp('slow',loadContent);
  16. window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-15);
  17. function loadContent() {
  18. $('#content').load(toLoad,'',showNewContent());
  19. }
  20. function showNewContent() {
  21. $('#content').slideDown('slow');
  22. }
  23. return false;
  24.  
  25. });
  26.  
  27. });
[JAVASCRIPT] pobierz, plaintext



Wszystko pięknie działało dopóki nie zapragnąłem dodać mapy google. Aby prawidłowo ona się wyświetlała przez ten skrypt dodałem do powyższego kodu następujące polecenia:

[JAVASCRIPT] pobierz, plaintext
  1. function showNewContent() {
  2. $('#content').show('slow',mapaStart());
  3. }
  4. function mapaStart() {
  5. var wspolrzedne = new google.maps.LatLng(44.5296369,10.868598);
  6. var opcjeMapy = {
  7. zoom: 10,
  8. center: wspolrzedne,
  9. mapTypeId: google.maps.MapTypeId.ROADMAP
  10. };
  11. var mapa = new google.maps.Map(document.getElementById("mapka"), opcjeMapy);
  12. }
[JAVASCRIPT] pobierz, plaintext



kiedy mam funkcję mapaStart() wywoływaną w showNewContent wszystko się popsuło. Przy wybieraniu jakiejkolwiek z opcji w menu cały content chowa się, ale nie chce się rozwinąć. Efekt można zobaczyć na www.ellheat.pl/ferraria . Proszę o pomoc
Go to the top of the page
+Quote Post
IProSoft
post
Post #2





Grupa: Zarejestrowani
Postów: 479
Pomógł: 97
Dołączył: 6.09.2011
Skąd: php.net :)

Ostrzeżenie: (0%)
-----


A masz div o ID: mapka w kodzie strony ?
Go to the top of the page
+Quote Post
ellheat
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 1.11.2013
Skąd: Poznań

Ostrzeżenie: (0%)
-----


dałeś mi troszkę do myślenia. Mam diva takiego, ale w podstronie contact.html. Znajduje się on na www.ellheat.pl/ferraria/contact.html . Troszkę dziwne bo jeżeli mam taki kod jak podałem tutaj na forum to mapka się nie wyświetla na tej podstronie. Jeżeli jednak usunę nawiasy z wywołania funkcji mapaStart

[JAVASCRIPT] pobierz, plaintext
  1. function showNewContent() {
  2. $('#content').show('slow',mapaStart);
  3. }
[JAVASCRIPT] pobierz, plaintext


To mapka się wyświetla. Jest tylko jeden problem. Skrypt działa dopóki nie najedzie się na podstrony, które są stworzone. W tym przypadku na Home i About. Następnie się wiesza.

Ten post edytował ellheat 25.03.2014, 17:42:32
Go to the top of the page
+Quote Post
IProSoft
post
Post #4





Grupa: Zarejestrowani
Postów: 479
Pomógł: 97
Dołączył: 6.09.2011
Skąd: php.net :)

Ostrzeżenie: (0%)
-----


Zacznij od utworzenia tego div przez jQuery i dopiero wtedy odpalaj skrypt mapy, dodatkowo zainstaluj Firebug do FF albo przez Chrome debuguj skrypt bo w tej chwili masz:
Kod
ReferenceError: mapaStart is not defined
mapaStart()


Ten post edytował IProSoft 25.03.2014, 18:48:48
Go to the top of the page
+Quote Post
ellheat
post
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 1.11.2013
Skąd: Poznań

Ostrzeżenie: (0%)
-----


dzięki wielkie działa jak należy tylko tak się zastanawiam czy da radę to zrobić to samo przez podzielnie tego skryptu (który odpowiada za dynamiczne przechodzenie pomiędzy stronami) na dwa podobne pliki. Do tej pory nie udało mi się tego jeszcze zrobić. Bo tak słabo troszkę jak każda podstrona będzie miała zbędny div, którego id będzie nazywał się mapka (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
IProSoft
post
Post #6





Grupa: Zarejestrowani
Postów: 479
Pomógł: 97
Dołączył: 6.09.2011
Skąd: php.net :)

Ostrzeżenie: (0%)
-----


Raczej w niczym to nie przeszkadza, a jeśli już to można to obejść.

W JS przed wywołaniem mapy wstaw:
[JAVASCRIPT] pobierz, plaintext
  1. jQuery('<div/>', {
  2. id: 'mapka'
  3. }).appendTo('#content');
[JAVASCRIPT] pobierz, plaintext

Go to the top of the page
+Quote Post
trueblue
post
Post #7





Grupa: Zarejestrowani
Postów: 6 809
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Cytat(ellheat @ 25.03.2014, 23:22:17 ) *
Bo tak słabo troszkę jak każda podstrona będzie miała zbędny div, którego id będzie nazywał się mapka (IMG:style_emoticons/default/wink.gif)

Przecież sprawdzasz jaką podstronę masz załadować. Zrób warunek i dodawaj diva tylko wtedy kiedy ładujesz "contact".
Go to the top of the page
+Quote Post
ellheat
post
Post #8





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 1.11.2013
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat(IProSoft @ 25.03.2014, 23:33:32 ) *
Raczej w niczym to nie przeszkadza, a jeśli już to można to obejść.

W JS przed wywołaniem mapy wstaw:
[JAVASCRIPT] pobierz, plaintext
  1. jQuery('<div/>', {
  2. id: 'mapka'
  3. }).appendTo('#content');
[JAVASCRIPT] pobierz, plaintext


dzięki, ale nie za bardzo chce mi to rozwiązanie działać. Wstawiam ten kod w funkcji showNewContent() i nie chce działać zbytnio. Tak samo się dzieje jeżeli wstawię ten kod przed funkcją showNewContent().
Go to the top of the page
+Quote Post
trueblue
post
Post #9





Grupa: Zarejestrowani
Postów: 6 809
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Wrzuć ten kod na stronę, którą podałeś w pierwszym poście.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.01.2026 - 11:24