Así que tengo un poco de JS bastante simple usando el 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
Básicamente, lo que está sucediendo aquí es que obtenemos la posición actual, si se obtiene, se colocan dos "marcas de agua" en dos campos que dicen "Posición actual" y se crean dos campos ocultos con los datos largos como su valor (se eliminan al principio para que no se dupliquen cada vez). También hay dos botones que tienen una función de clic vinculada a ellos que hacen lo mismo. Desafortunadamente, cada tercera vez más o menos, funciona. ¿Cuál es el problema aquí?
noLocation
llama a la función? Si es así, puede agregar un error
parámetro ay noLocation()
luego, error.code
y error.message
puede ayudarlo a depurar. También podría ayudarnos a saber qué navegador está utilizando y si ve el mismo problema en diferentes navegadores.