J'ai fait un appel d'API avec l'aide de $.getJSON
mais je ne sais pas comment rendre les données retournées disponibles globalement pour être également utilisées dans d'autres fonctions.Comment rendre jQuery JSON retourné les données disponibles globalement et l'aide de l'analyse de chaîne mineure?
Le return
dans le code ci-dessous ne fonctionne pas, mais à la place si je alert
il: il fonctionne charms.
$.getJSON(url, function(timeInfo){
return timeInfo.time;
});
également sur 2010-12-09 12:53 format de l'heure. Comment puis-je prendre le 12 (l'heure) sur.
S'il vous plaît aider et désolé d'inclure deux questions en une.
Code détaillé:
function handle_geolocation_query(position) {
if(position[0] == 'Yes'){
var url = "http://ws.geonames.org/findNearByWeatherJSON?lat=" + position[1] + "&lng=" + position[2] + "&callback=?";
} else {
var url = "http://ws.geonames.org/findNearByWeatherJSON?lat=" + position.coords.latitude + "&lng=" + position.coords.longitude + "&callback=?";
}
$.getJSON(url, function(weatherInfo){
var clouds = weatherInfo.weatherObservation.clouds;
var weather = weatherInfo.weatherObservation.weatherCondition;
var time = getTimeInfo(position);
if(time.getHours()>=6 && time.getHours()<=18){
var weatherClass = placeImageDay(clouds, weather);
$('#weatherImage').show().addClass(weatherClass);
} else {
var weatherClass = placeImageNight(clouds, weather);
$('#weatherImage').show().addClass(weatherClass);
}
});
}
function getTimeInfo(position){
if(position[0] == 'Yes'){
var url = "http://ws.geonames.org/timezoneJSON?lat=" + position[1] + "&lng=" + position[2] + "&callback=?";
} else {
var url = "http://ws.geonames.org/timezoneJSON?lat=" + position.coords.latitude + "&lng=" + position.coords.longitude + "&callback=?";
}
$.getJSON(url, function(timeInfo){
return timeInfo.time;
});
}
Je comprends que le rappel est le chemin. Mais si vous voyez mon code détaillé, j'ai ajouté ci-dessus. J'utilise une fonction dans une autre. Pouvez-vous essayer d'expliquer comment j'arrive à faire votre technique dans mon code? Vous n'avez pas besoin d'écrire le code si vous ne le souhaitez pas, essayez simplement de me lancer le concept. Merci beaucoup – Aayush
Comme je l'ai dit, remplacez 'return timeInfo.time;' dans votre callback avec l'appel de fonction approprié pour passer 'timeInfo' au gestionnaire correct, exactement comme vous le faites déjà dans la première fonction de rappel de votre code détaillé (appelant 'placeImageDay' et' placeImageNight'). Vous pouvez aussi simplement mettre le nom de la fonction dans '$ .getJSON()'. J'ai ajouté le code en tant que modification à ma réponse. –