Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przekazywanie zmiennej do funkcji przez wartość
white_tigger
post 4.11.2010, 21:50:28
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:
  1. <!DOCTYPE html>
  2. <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
  3. <script type="text/javascript">
  4. var id = Math.floor(10000000*Math.random());
  5. document.write('<div id="map'+id+'" style="width: 400px; height: 400px;"></div><br>');
  6. google.maps.event.addDomListener(window,'load',function(){
  7. var myLatLng = new google.maps.LatLng(50.0375, 22.0049);
  8. var map = new google.maps.Map(document.getElementById('map'+id), {
  9. zoom: 14,
  10. center: myLatLng,
  11. mapTypeId: google.maps.MapTypeId.ROADMAP});
  12. var marker = new google.maps.Marker({
  13. position: myLatLng,
  14. map: map,
  15. title: 'Old marketplace in Rzeszow'});
  16. });
  17.  
  18. id = Math.floor(10000000*Math.random());
  19. document.write('<div id="map'+id+'" style="width: 400px; height: 400px;"></div><br>');
  20. google.maps.event.addDomListener(window,'load',function(){
  21. var myLatLng = new google.maps.LatLng(50.0375, 22.0049);
  22. var map = new google.maps.Map(document.getElementById('map'+id), {
  23. zoom: 14,
  24. center: myLatLng,
  25. mapTypeId: google.maps.MapTypeId.ROADMAP});
  26. var marker = new google.maps.Marker({
  27. position: myLatLng,
  28. map: map,
  29. title: 'Old marketplace in Rzeszow'});
  30. });
  31. </script>
  32. </body>
  33. </html>

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:
  1. <!DOCTYPE html>
  2. <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
  3. <script type="text/javascript">
  4. var id = Math.floor(10000000*Math.random());
  5. document.write('<div id="map'+id+'" style="width: 400px; height: 400px;"></div><br>');
  6. google.maps.event.addDomListener(window,'load',function(){
  7. var myLatLng = new google.maps.LatLng(50.0375, 22.0049);
  8. var map = new google.maps.Map(document.getElementById('map'+id), {
  9. zoom: 14,
  10. center: myLatLng,
  11. mapTypeId: google.maps.MapTypeId.ROADMAP});
  12. var marker = new google.maps.Marker({
  13. position: myLatLng,
  14. map: map,
  15. title: 'Old marketplace in Rzeszow'});
  16. });
  17.  
  18. id2 = Math.floor(10000000*Math.random());
  19. document.write('<div id="map'+id2+'" style="width: 400px; height: 400px;"></div><br>');
  20. google.maps.event.addDomListener(window,'load',function(){
  21. var myLatLng = new google.maps.LatLng(50.0375, 22.0049);
  22. var map = new google.maps.Map(document.getElementById('map'+id2), {
  23. zoom: 14,
  24. center: myLatLng,
  25. mapTypeId: google.maps.MapTypeId.ROADMAP});
  26. var marker = new google.maps.Marker({
  27. position: myLatLng,
  28. map: map,
  29. title: 'Old marketplace in Rzeszow'});
  30. });
  31. </script>
  32. </body>
  33. </html>

Kod jednak wtedy nie jest identyczny, a chcę z tego zrobić powtarzalny BBCode 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 smile.gif

Czyżby problem nie miał prostego rozwiązania?
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 20:58