Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z obsługą zdarzenia w popupie mapy
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
m72
Jak zrobić żeby z wygenerować zdarzenie jquery po kliku w link w popupie (pojawia sie po kliku w marker) żeby działał tak jak ten pod mapą.
Problem chyba w tym ze strona po załadowaniu nie ma w swoim drzewie DOM zbindowanego popupa który się pojawia dopiero po kliku więc nie ma się do czego odwoływać.
Gotowy plik do odpalenia w przeglądarce.

  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  6. <script src="http://cdn.leafletjs.com/leaflet-0.7.2/leaflet.js"></script>
  7. <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.2/leaflet.css" />
  8. </head>
  9. <body>
  10. <div id="map" style="width:500px;height:500px;">
  11. var map = L.map('map').setView([54.6154, 18.8141], 7);
  12. L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
  13. maxZoom: 18,
  14. attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors,<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery Š <a href="http://cloudmade.com">CloudMade</a>'
  15. }).addTo(map);
  16.  
  17. L.marker([54.6154,18.8141]).addTo(map).bindPopup("<a href='#' class='A1'>link</a>");
  18. </script>
  19. </div>
  20. <a href='#' class='A1'>link</a>
  21.  
  22. $( '.A1' ).click(function() {
  23. alert('halo');
  24. });
  25. </script>
  26. </body>
  27. </html>
  28.  
Turson
Kod
$(document).on('click','.A1',function() {
    alert('halo');
    });
m72
Dzięki, działa ! smile.gif

Dołącz jeszcze jeden problem to tego wątku.
Chciałem dynamicznie dodawać nazwy markerów w pętli, po to żeby się móc później do nich odwoływać ale coś chyba jest nie tak.
  1. <!doctype html>
  2. <html lang="en">
  3. <meta charset="utf-8">
  4. <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  5. <script src="http://cdn.leafletjs.com/leaflet-0.7.2/leaflet.js"></script>
  6. <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.2/leaflet.css" />
  7. </head>
  8. <div id="map" style="width:500px;height:500px;">
  9. var map = L.map('map').setView([50, 19], 7);
  10. L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
  11. maxZoom: 18,
  12. attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors,<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery Š <a href="http://cloudmade.com">CloudMade</a>'
  13. }).addTo(map);
  14.  
  15.  
  16.  
  17. var i = 0;for (i = 0; i < 3; i++){
  18. marker='marker'+i;
  19. console.log(marker);
  20. marker= L.marker([49+i, 18.0+i]).addTo(map);
  21. }
  22.  
  23. popup = L.popup({closeButton: false,keepInView: false,minWidth:150,offset:(40, 400)}).setContent('coontenr');
  24.  
  25. marker0.bindPopup(popup);
  26. marker1.bindPopup(popup);
  27. marker2.bindPopup(popup);
  28.  
  29.  
  30.  
  31. </div>
  32.  
  33. </body>
  34. </html>



Konsola wyrzuca:

ReferenceError: marker0 is not defined popup.html:28
"marker0" popup.html:22
"marker1" popup.html:22
"marker2"

Podpowiedzcie jak można dynamicznie nadawać nazwy markerom (w pętli) ?
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.