2017-10-11 2 views
-1

Je suis sûr que j'ai mal structuré ce, mais l'écouteur d'événement pour "dragend" ne tire pas. Lorsque je change l'événement en bounds_changed ou en center_changed, il se déclenche uniquement lors du chargement de la page initiale. Y a-t-il quelque chose qui ressort de la façon dont il se comporte comme ça?"dragend" écouteur d'événement tirant seulement sur le chargement (une fois) Google Maps

Je veux simplement appeler ma fonction searchStores() à chaque fois que la carte est repositionnée afin qu'elle devienne réactive pour l'utilisateur.

var map; 

    $(document).ready(function() { 

     var latlng = new google.maps.LatLng(36.2994410, -82.3409052); 
     var myOptions = { 
      zoom: 12, 
      center: latlng, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 

     // create the new map with options 
     map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 


     $("#btnSearch").click(function(){ 
      //Convert Address Into LatLng and Retrieve Address Near by 
      convertAddressToLatLng($("#txtAddress").val()); 
     }); 

     //send user to print/save view on click 
     $("#saveAs").click(function() { 
      window.location.href = "https://54.90.210.118/test.html?address=" + $("#txtAddress").val() + '&radius=' + $("#radiusO").val(); 
     }); 

     //WHAT IS GOING ON WITH THIS GUY??? 
     google.maps.event.addListener(map, "dragend", function() { 
      alert('map dragged'); 

     }); 
    }); 

    $(document).one('ready', function(){ 

     // Try HTML5 geolocation. 
     if (navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition(function(position) { 
       var pos = { 
        lat: position.coords.latitude, 
        lng: position.coords.longitude 
       }; 
       latlngloc = new google.maps.LatLng(pos.lat, pos.lng); 
       map.setCenter(pos); 
       $("#divStores").html(''); 
       searchStores(latlngloc); 
      }, function() { 
       handleLocationError(true, infoWindow, map.getCenter()); 
      }); 
     } else { 
      // Browser doesn't support Geolocation 
      handleLocationError(false, infoWindow, map.getCenter()); 
     } 
    }); 
+0

Je ne connais pas trop jQuery, mais pourquoi avez-vous besoin du document onReady et un ('prêt')? Ne font-ils pas les mêmes choses? –

+0

Vous ne pouvez pas vous voir faire quelque chose de mal. Voici un jsfiddle en utilisant votre code et cela fonctionne très bien - https://jsfiddle.net/g1s7n3tm/ –

+0

Une downvote? hein. De toute façon, ça ne marche toujours pas de mon côté. J'ai essayé différents navigateurs etc. Il semble être avec la fonction de géolocalisation. Quand je le commente, l'auditeur fonctionne très bien. Jusqu'à présent, j'ai supprimé le fichier .one(), et j'ai déplacé la Geolocation dans le fichier principal document.ready(). Je joue toujours avec des options pour les amener à bien jouer. Je ne peux pas sembler trouver le point auquel l'écouteur d'événement est écrasé ou la carte est en train d'être rafraichie (effaçant ainsi l'auditeur). – Lynxx

Répondre

0

Merci pour l'aide! J'ai trouvé que le problème était sur une autre fonction qui a fini par effacer l'objet carte et ensuite le recréer. Par conséquent, supprimer l'écouteur. Désolé pour la confusion, et merci de souligner que cela a fonctionné sur Jfiddle. Je pensais que c'était quelque chose à voir avec la façon dont je l'appelais. Je suis vraiment novice en Javascript et je dois apprendre peu à peu. Merci pour votre aide! =)