$.ajax ist nicht eine Funktion
Hallo, ich bin versucht, Wunderground-Wetter-API aber ich habe Probleme mit der Anforderung der Informationen, die Sie auf eine Schaltfläche klicken.
Hier ist der Arbeits-Eröffnung Linie Geliefert:
jQuery(document).ready(function($) {
Und hier ist, was ich geändert es zu:
jQuery('#GetWeather').click(function($) {
Wenn ich auf die Schaltfläche klicke bekomme ich eine firebug-Error:
TypeError: $.ajax is not a function
[Break On This Error]
success : function(parsed_json) {
Ich weiß nicht, warum es nicht funktionieren, aber hier ist der rest von dem code... Hoffe es hilft:
jQuery('#GetWeather').click(function($) {
var PostCode="PL9 9UT";
$.ajax({ url : "http://api.wunderground.com/api/2508132ae0c7601a/geolookup/conditions/q/UK/"+PostCode +".json",
dataType : "jsonp",
success : function(parsed_json) {
var icon = parsed_json['current_observation']['icon'];
var temp_c = parsed_json['current_observation']['temp_c'];
var feelslike_c = parsed_json['current_observation']['feelslike_c'];
var visibility_mi = parsed_json['current_observation']['visibility_mi'];
var UV = parsed_json['current_observation']['UV'];
var relative_humidity = parsed_json['current_observation']['relative_humidity'];
var wind_mph = parsed_json['current_observation']['wind_mph'];
var pressure_mb = parsed_json['current_observation']['pressure_mb'];
var wind_string = parsed_json['current_observation']['wind_string'];
var weather = parsed_json['current_observation']['weather'];
var imageurl = "http://192.168.0.4/DesktopVersion/Inc/Images/Weather/";
$('.Wicon').css('background-image',"url("+imageurl +icon +".svg)");
$('#GetWeatherTemp').html(temp_c +"°");
$('#GetWeatherFeel').html("Feels Like " +feelslike_c +"℃");
$('#GetWeatherVis').html(visibility_mi +" Miles");
$('#GetWeatherUv').html(UV);
$('#GetWeatherHumid').html(relative_humidity +"%");
$('#GetWeatherWind').html("Wind Speed " +wind_mph +"Mph");
$('#GetWeatherPress').html(pressure_mb);
$('#GetWeatherState').html(weather);
}
});
});
- Sie können nicht nur ersetzen, klicken Sie auf mit ready und erwarten, dass Sie funktionieren auf die gleiche Art und Weise... der Eine ist ein Ereignis, ein anderer ist ein jQuery-Methode.
- Beachten Sie, dass der code von der verlinkten Seite NICHT die $ im code umbrechen überhaupt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
click
Ereignis nicht senden Sie das jQuery-Objekt als parameter zu übergeben, sendet er dasevent
Objekt, also die$
innerhalb der Funktion nicht das jQuery-Objekt, wird es dieevent
Objekt für das click-Ereignis.Entfernen Sie einfach die
$
parameter, so dass es nicht Schatten der globalen$
Kennung:Diese Zeile ist dein problem:
in der
document.ready
handlerjQuery
übergeben wird, so dass Sie bequem alias es zu$
für die Kompatibilität. Jedoch, mit derclick
handler, der erste parameter ein event-Objekt, was bedeutet, du bist zu überschreiben, jQuery Kurzschrift ($
) mit der Veranstaltung verweisen.