-2

こんにちは、Wunderground Weather APIを使用しようとしていますが、ボタンのクリックで情報を要求するのに問題があります。提供されている作業開始行は次のとおりです。

jQuery(document).ready(function($) {

そして、これが私がそれを変更したものです:

jQuery('#GetWeather').click(function($) {

ボタンをクリックすると、firebug エラーが発生します。

TypeError: $.ajax is not a function
[Break On This Error]   

success : function(parsed_json) {

うまくいかない理由はわかりませんが、残りのコードは次のとおりです...お役に立てば幸いです:

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 +"&#176");
$('#GetWeatherFeel').html("Feels Like " +feelslike_c +"&#8451");
$('#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);
}
});
});
4

2 に答える 2

5

この行はあなたの問題です:

jQuery('#GetWeather').click(function($) {

document.readyハンドラーでは、互換性のためjQueryに簡単にエイリアスできるように渡されます$。ただし、clickハンドラーでは、最初のパラメーターはイベント オブジェクトです。つまり、jQuery の短縮形 ( $) をイベント参照で上書きします。

于 2013-01-25T19:25:21.363 に答える
3

clickイベントはパラメータとして jQuery オブジェクトを送信するのではなく、オブジェクトを送信するeventため$、関数内は jQuery オブジェクトではなくevent、クリック イベントのオブジェクトになります。

グローバル識別子$をシャドウしないように、パラメーターを削除するだけです。$

jQuery('#GetWeather').click(function() {
于 2013-01-25T19:25:43.250 に答える