我试图切换" 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 + '°' + 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;
}
答案 0 :(得分:0)
答案 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 + '°' + 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()
才会添加事件侦听器。