单击按钮更改变量的值

时间:2015-09-15 19:33:02

标签: javascript jquery html

我试图切换" unit"的价值。来自' c'到了' f'当按下按钮而我无法让它工作。我花了很多时间查看替代示例,但很想知道为什么我的解决方案无法从中学习。 我设法切换按钮的值但是却找不到在loadweather函数中实际使用button.value的方法。只使用unit:button.value,没有用。 你对可能出错的东西有什么看法吗?

我的JS是:

var temp = 'c';
function change() {
if (temp == 'f') {temp = 'c';} 
else if (temp == 'c') {temp = 'f';} 
}
$('.btn').on('click', function() { change (); })

function loadWeather(location, woeid) {
$.simpleWeather({
location: location,
woeid: woeid,
unit: temp,
success: function(weather) {
  html = '<h2>' + weather.temp + '&deg;' + weather.units.temp + '</h2>';
  html += '<ul><li>' + weather.city + ', ' + weather.region + ', ' + weather.country + '</li>';
  html += '<li class="currently">' + weather.currently + '</li>';
  $("#weather").html(html);

按钮html + css看起来像这样:<button class = "btn"> Toggle F/C </button>

.btn {
position: fixed;
top: 20px;
background: white;
display: block;
padding: 1px 1px 1px 1px; 
}

3 个答案:

答案 0 :(得分:0)

不确定为什么你的代码不适合你。

我粘贴到jsbin中,它对我有用。

请看一下:http://jsbin.com/foheguzevo/edit?html,css,js,output

答案 1 :(得分:0)

如果没有完全重现您的问题,我无法完全确定此答案是否完整。但是,我有一种感觉,主要问题是您在更改变量后没有回忆loadWeather()

演示:http://jsfiddle.net/hopkins_matt/aaov1scu/

<强> JS:

var temp = 'c';

function change() {
    if (temp == 'f') {
        temp = 'c';
    } else if (temp == 'c') {
        temp = 'f';
    }
    loadWeather('Akron, OH', '');
}
$('.btn').on('click', function () {
    change();
});

function loadWeather(location, woeid) {
    $.simpleWeather({
        location: location,
        woeid: woeid,
        unit: temp,
        success: function (weather) {
            html = '<h2>' + weather.temp + '&deg;' + weather.units.temp + '</h2>';
            html += '<ul><li>' + weather.city + ', ' + weather.region + ', ' + weather.country + '</li>';
            html += '<li class="currently">' + weather.currently + '</li>';
            $("#weather").html(html);
        }
    });
}
loadWeather('Akron, OH', '');

答案 2 :(得分:0)

脚本应如下所示:

var temp = 'c';
function change() {
    temp = temp == 'f' ? 'c' : 'f';
}
$(document).ready(function() {
    $('.btn').on('click', function() { change(); });
});
只有在加载和创建所有元素之后,

$(document).ready()才会添加事件侦听器。