私はクリックすると最初にボタンのテキストとクラスを交換するために2回クリックする必要があります。他のすべての時間は、最初のクリックで変更されます。 私はすでにchangeUnits()関数をクリックして削除しようとしましたが、この場合はCelciusに一度変更することができ、値を交換できなくなりました。私は後で別のAPI呼び出しで天気を指定された単位で取得するために値とクラスを割り当てています。 誰か私は間違って何を見ていますか?onclickを実行するために2回クリックする必要があります
HTML
<button id="units" class="Fahrenheit" onclick="changeUnits();callWeather()">F</button>
javascriptの
function changeUnits() {
if($("#units").hasClass("Fahrenheit")) {
$(".Fahrenheit").click(function() {
$(".Fahrenheit").text("C");
$(this).removeClass('Fahrenheit').addClass('Celcius');
});
}
else if($("#units").hasClass("Celcius")) {
$(".Celcius").click(function() {
$(".Celcius").text("F");
$(this).removeClass('Celcius').addClass('Fahrenheit');
});
}
}
あなたが最初のクリックで、あなたの 'changeUnitsを()'を実行していると、その関数で使用すると、別のクリックリスナを設定しています - そのため、2度クリックする必要があります。不要なリスナーを削除する( '$(" .Fahrenheit "))。(function(){' and '$(" Celcius ")}をクリックすると、意図したとおりに動作します。 –