J'ai donc un peu assez simple de JS utilisant le jammy navigator.geolocation.getCurrentPosition.
$(document).ready(function(){
$("#business-locate, #people-locate").click(function() {
navigator.geolocation.getCurrentPosition(foundLocation, noLocation);
});
navigator.geolocation.getCurrentPosition(foundLocation, noLocation);
function foundLocation(position) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
var userLocation = lat + ', ' + lon;
$("#business-current-location, #people-current-location").remove();
$("#Near-Me")
.watermark("Current Location")
.after("<input type='hidden' name='business-current-location' id='business-current-location' value='"+userLocation+"' />");
$("#people-Near-Me")
.watermark("Current Location")
.after("<input type='hidden' name='people-current-location' id='people-current-location' value='"+userLocation+"' />");
}
function noLocation() {
$("#Near-Me").watermark("Could not find location");
$("#people-Near-Me").watermark("Could not find location");
}
})//end DocReady
Fondamentalement, ce qui se passe ici, c'est que nous obtenons la position actuelle, si elle est obtenue, deux "filigranes" sont placés dans deux champs qui disent "Position actuelle" et deux champs cachés sont créés avec les données lat comme valeur (ils sont supprimés au début afin qu'ils ne soient pas dupliqués à chaque fois). Il y a également deux boutons qui ont une fonction de clic qui leur est liée et qui font la même chose. Malheureusement, une fois sur trois environ, cela fonctionne. Quel est le problème ici ???
noLocation
fonction est-elle appelée? Si tel est le cas, vous pouvez ajouter un error
paramètre à noLocation()
puis error.code
et error.message
peut vous aider dans le débogage. Cela pourrait également nous aider à savoir quel navigateur vous utilisez et si vous voyez le même problème dans différents navigateurs.