J'ai donc un petit bout de JS assez simple qui utilise 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
En gros, ce qui se passe ici 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 de longueur de la latte comme valeur (ils sont supprimés au début pour qu'ils ne soient pas dupliqués à chaque fois). Il y a aussi deux boutons qui ont une fonction de clic liée à eux et qui font la même chose. Malheureusement, cela fonctionne environ une fois sur trois. Quel est le problème ?
0 votes
Définissez peut-être les fonctions avant de les utiliser.
4 votes
@digitalFresh, cela ne devrait pas avoir d'importance car l'analyseur JS recherche ces déclarations avant que le code ne commence à être exécuté.
0 votes
Est-il possible que l'utilisation de jQuery soit à l'origine de problèmes ?
1 votes
Que voulez-vous dire exactement quand vous dites que ça ne marche pas parfois ? Est-ce que le
noLocation
qui est appelée ? Si c'est le cas, vous pouvez ajouter unerror
pournoLocation()
et ensuiteerror.code
yerror.message
peut vous aider à déboguer. Il pourrait également nous être utile de savoir quel navigateur vous utilisez et si vous rencontrez le même problème dans différents navigateurs.0 votes
Quand ça ne marche pas, il n'y a même pas de message "Impossible de trouver l'emplacement", donc le bit noLocation ne fonctionne pas non plus.
0 votes
Question connexe stackoverflow.com/q/5947637/194609
0 votes
Vous ne mettez aucune option. Essayez geolocator.js - github.com/onury/geolocator