出於某種原因,我只能得到click事件在溫度元素(id:#temp)上觸發一次。它轉換成華氏後,它不會轉換回攝氏溫度。我剛開始使用jQuery,所以任何幫助將不勝感激。源代碼如下。jQuery Click事件只觸發一次
HTML來源:
<html>
<head>
<link rel="stylesheet" href="main.css"/>
<script src="https://code.jquery.com/jquery-3.2.1.js" integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" crossorigin="anonymous"></script>
<script src="main.js"></script>
<script type="text/javascript" async src="https://platform.twitter.com/widgets.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"/>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"></link>
</head>
<body>
<h1>Local Weather Code Camp Project</h1>
<h4>Location</h4>
<p id="location"></p>
<h4>Weather</h4>
<p id="weather"></p>
<img id="icon">
<h3 id="temp"></h3>
<p id="check"></p>
</body>
</html>
的jQuery來源:
$(document).ready(function() {
navigator.geolocation.getCurrentPosition(function(position) {
$.getJSON('https://fcc-weather-api.glitch.me/api/current?lat=' + position.coords.latitude + '&lon=' + position.coords.longitude , function(data){
var tmpInt = 0;
$("h1").html(JSON.stringify(data));
$("#location").html(data.name);
$("#weather").html(data.weather[0].description);
$("#icon").attr("src", data.weather[0].icon);
$("#temp").html(data.main.temp + "° C");
$(document).on('click','#temp',function() {
tmpInt = data.main.temp;
tmpInt = tmpInt * 1.8 +32;
if("#temp:contains('° C')") {
$("#temp").html(tmpInt + "° F");
$("#check").html("Contains C");
}
else if("#temp:contains('° F')") {
$("#temp").html(data.main.temp + "° C");
$("#check").html("Contains F");
}
});
});
});
});
工作CodePen here。
我建議你看**非常仔細**在'if(「#temp:contains('° C')」)'。你認爲那是什麼評估? – Phil
除了@Phil的評論。您的點擊事件會引發,您的功能正在被調用。我嘗試了你的CodePen例子,只是提出一個簡單的'alert'。所以你的問題不是你說的。 –
@Pil我認爲它評估是否給定的元素包含該字符串,如果不移動到下一個如果或退出,更正? –