Итак, у меня есть довольно простая часть JS, использующая 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
По сути, здесь происходит то, что мы получаем текущую позицию, если она получена, два «водяных знака» помещаются в два поля с надписью «Текущая позиция», а два скрытых поля создаются с данными долготы в качестве значения (они удалены). в начале, чтобы они не дублировались каждый раз). Есть также две кнопки, к которым привязана функция щелчка, которая делает то же самое. К сожалению, каждый третий раз или около того, это работает. В чем здесь проблема ???
noLocation
вызывается функция? Если это так, вы можете добавить error
параметр, noLocation()
а затем error.code
и error.message
может помочь вам в отладке. Это также может помочь нам узнать, какой браузер вы используете, и если вы видите ту же проблему в разных браузерах.