Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przekazywanie zmiennej do funkcji przez wartość
white_tigger
post
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 (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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
white_tigger
post
Post #2





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 30.10.2010
Skąd: Rzeszów

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


To, o czym napisałeś, jest w sumie dokładnie opisane w moim poście. Rozumiem w czym rzecz, dlatego pytanie "jak przekazać do funkcji wartość ustaloną w momencie przypisania tej funkcji do zdarzenia, a nie zmienną?" pozostaje bez odpowiedzi.

Ale nie zawracam już Wam głowy - pokombinuję nad innym sposobem realizacji tego celu.
Go to the top of the page
+Quote Post

Posty w temacie


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: 27.09.2025 - 10:35