![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 30.10.2010 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Mam taki problem:
Chcę dwukrotnie wyświetlić mapkę Google. W związku z tym tworzę dwa znaczniki "div" i muszę nadać im unikalne nazwy, tak aby Google mogło prawidłowo zainicjować mapy. Nazwy muszą być unikalne i generowane automatycznie. Kod obecnie wygląda tak:
Podejrzewam, że do funkcji "document.getElementById()" zmienna "id" jest przekazywana poprzez referencję, lub docelowe id (nazwa znacznika "div") jest składane dopiero w momencie wywołania zdarzenia 'load', bo obie mapki są podpinane pod drugi znacznik "div". Jeżeli zrobię taki myk, że w drugim fragmencie zmienię nazwę zmiennej z "id" na "id2", to wszystko działa poprawnie:
Kod jednak wtedy nie jest identyczny, a chcę z tego zrobić powtarzalny BBCode (IMG:style_emoticons/default/dry.gif) Być może wiecie jak obejść tę przypadłość, albo macie jakiś inny pomysł na tworzenie unikalnych nazw lub wiązanie funkcji wywoływanej przez zdarzenie "load" ze znacznikiem "div"? Z góry wielkie dzięki za pomoc (IMG:style_emoticons/default/smile.gif) Czyżby problem nie miał prostego rozwiązania? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Czyżby problem nie miał prostego rozwiązania? Ma. Rozwiązanie jest bardzo proste, a wynika z Twojego błędnego rozumowania, jeśli chodzi o kolejność:
Ten kawałek kodu jest wykonywany asynchronicznie. Czyli ładowanie mapki nie następuje w chwili jej wstawienia - GMaps czeka aż cała zawartość strony jest załadowana (o czym mówi zdarzenie load). Do tej pory zmienna zdąży już być nadpisana przez kolejną jej modyfikację. (IMG:style_emoticons/default/winksmiley.jpg) Więc każda instancja musi mieć osobną zmienną z identyfikatorem. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 23:02 |