$ .ajax不是函数

Hi i am trying to use Wunderground Weather API but i am having troubles with requesting the information on a button click. Here is the working opening line Supplied:

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

And here is what i changed it to:

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

When i click the button i get a firebug Error:

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

success : function(parsed_json) {

I don't know why it wont work but here is the rest of the code... Hope it helps:

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);
}
});
});

This line is your problem:

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

in the document.ready handler, jQuery is passed in so that you can conveniently alias it to $ for compatibility. However, with the click handler, the first parameter is an event object, which means you're overwriting the jQuery shorthand ($) with the event reference.

The click event doesn't send the jQuery object as parameter, it sends the event object, so the $ inside the function won't be the jQuery object, it will be the event object for the click event.

Just remove the $ parameter so that it doesn't shadow the global $ identifier:

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