Comment masquer l'Api Google Maps Marqueurs avec jQuery
Bonjour cela pourrait être vraiment bête question, mais je suis en train de faire des marqueurs disparaissent lorsque
ils sont cliqués. Le marqueur se trouve bien sur la carte, mais quand je clique dessus, il n'a pas
faire quoi que ce soit. Je me demandais pourquoi sa ne fonctionne pas. Merci!!!!
<script type="text/javascript" src="jQuery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var myOptions = {
center: new google.maps.LatLng(40.1, -88.2),
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var myLatlng = new google.maps.LatLng(40.1, -88.2);
var temp_marker = new google.maps.Marker({
position: myLatlng,
map: map,
title:"Hello World!"
});
console.log($(temp_marker));
console.log(temp_marker);
//temp_marker.click(function(){$(this).hide();});
$(temp_marker).click(function(){console.log("click is working"); $(this).hide();});
});
</script>
</head>
<body>
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
Vous devez vous connecter pour publier un commentaire.
temp_marker
est un objet Javascript, pas un élément du DOM. Pour attacher un écouteur pour le marqueur (l'API de gérer les spécificités du DOM élément à fixer et comment), vous devez utiliser l'API Google Maps est propre système d'événements comme:Leur documentation: Google Maps Javascript API v3 - Événements
Expansion sur Ben des notes, cela devrait aller là où vous avez déclaré votre marqueur, par exemple:
Il m'a pris les âges essayant de comprendre cela. Crédit énorme à Ben! Merci!
Ben vous a fourni la moitié de la réponse. Une fois que vous êtes en mesure de détecter le marqueur d'événement click vous avez besoin de se "cacher" ou de supprimer le marqueur de la carte. La méthode standard pour le faire avec google maps pour ce faire:
Vous pouvez ensuite afficher la carte à nouveau à l'aide de setMap affecter votre carte objet au lieu de null.
marker
est un google maps objet, et non un élément du DOM. Jquery fonctionne sur des éléments du DOM.Vous pouvez afficher un marqueur par la définition de la visibilité
true
et de le cacher par la définition de la visibilitéfalse
Je ne suis pas sûr que vous pouvez simplement masquer le marqueur, mais un crochet pour l'événement de clic serait de faire quelque chose comme cela, lorsque vous déclarez
marker
Vous pouvez avoir à supprimer le marqueur sur la carte plutôt que de "se cacher" il.
Ce que vous essayez de masquer les marqueurs pour? Avez-vous d'être en mesure de reshow le marqueur? Comment comptez-vous accomplir cela?