使用openweathermap显示不同城市的天气数据

时间:2013-12-09 19:34:07

标签: javascript weather-api openweathermap

我使用openweathermap为我的网站构建了一个天气小部件。 JS& HTML是 - main.html页面中的脚本 - >

$(function() {

    $('.weather-temperature').openWeather({
        city: 'Dhaka, BD',
        descriptionTarget: '.weather-description',
        windSpeedTarget: '.weather-wind-speed',
        minTemperatureTarget: '.weather-min-temperature',
        maxTemperatureTarget: '.weather-max-temperature',
        humidityTarget: '.weather-humidity',
        sunriseTarget: '.weather-sunrise',
        sunsetTarget: '.weather-sunset',
        placeTarget: '.weather-place',
        iconTarget: '.weather-icon',
        customIcons: 'images/icons/weather/',
        success: function() {

            //show weather
            $('.weather-wrapper').show();

        },
        error: function(message) {

            console.log(message);

        }
    });

}); 

HTML - > / *

                                <div class="weather-wrapper hide">
            <select id='list'>
                    <option value='Dhaka,BD'>Dhaka</option>
                    <option value='Pabna,BD'>Pabna</option>
            </select>

            <img src="" class="weather-icon" alt="Weather Icon" />

            <p><strong>Place</strong>
            <br /><span class="weather-place"></span></p>

            <p><strong>Temperature</strong>
            <br /><span class="weather-temperature"></span> (<span class="weather-min-temperature"></span> - <span class="weather-max-temperature"></span>)</p>

            <p><strong>Description</strong>
            <br /><span class="weather-description capitalize"></span></p>

            <p><strong>Humidity</strong>
            <br /><span class="weather-humidity"></span></p>

            <p><strong>Wind speed</strong>
            <br /><span class="weather-wind-speed"></span></p>

            <p><strong>Sunrise</strong>
            <br /><span class="weather-sunrise"></span></p>

            <p><strong>Sunset</strong>
            <br /><span class="weather-sunset"></span></p>

        </div>      */

没有任何'选择'选项,它适用于'达卡'城市。我想使用选择选项更改城市名称并显示已更改的天气数据。我已尝试过------

     /*
      var loc;
         $('#list').change(function() {
         loc = $('#list').val();
         $('.weather-temperature').openWeather({
           city: "' + loc + '",
            //etc.
      */

这是openweather.js代码-----

    /*
      ;(function($) {

$.fn.openWeather  = function(options) {

    //return if no element was bound
    //so chained events can continue
    if(!this.length) { 
        return this; 
    }

    //define default parameters
    var defaults = {
        descriptionTarget: null,
        maxTemperatureTarget: null,
        minTemperatureTarget: null,
        windSpeedTarget: null,
        humidityTarget: null,
        sunriseTarget: null,
        sunsetTarget: null,
        placeTarget: null,
        iconTarget: null,
        customIcons: null,
        units: 'c',
        city: null,
        lat: null,
        lng: null,
        key: null,
        success: function() {},
        error: function(message) {} 
    }

    //define plugin
    var plugin = this;

    //define element
    var el = $(this);

    //api URL
    var apiURL;

    //define settings
    plugin.settings = {}

    //merge defaults and options
    plugin.settings = $.extend({}, defaults, options);

    //if city isn't null
    if(plugin.settings.city != null) {

       //define API url using city (and remove any spaces in city)
       apiURL = 'http://api.openweathermap.org/data/2.5/weather?q='+plugin.settings.city.replace('', '');

    } else if(plugin.settings.lat != null && plugin.settings.lng != null) {

       //define API url using lat and lng
       apiURL = 'http://api.openweathermap.org/data/2.5/weather?lat='+plugin.settings.lat+'&lon='+plugin.settings.lng;
    }

    if(plugin.settings.key != null) {

        apiURL += '&APPID=' + plugin.settings.key;

    }

 etc....
  */

对于这篇漫长的写作,我感到非常抱歉。这个问题严重困扰我,我不是专业编码员。所以PLZ帮助我摆脱这个问题。

1 个答案:

答案 0 :(得分:0)

city: "' + loc + '",更改为city:loc,,它应该有效