после нажатия на значок Цельсия или Фаренгейта, я хочу изменить степень и значок. Что со мной происходит, что он просто обновляет его один раз.обновите содержимое html после нажатия на значок
HTML:
<ul id="list">
<li></li>
<li> <i class="wi wi-celsius"></i></li>
<li></li>
</ul>
JS:
$('#list li:nth-child(2)>i').click(function() {
var temp = $('#list li:nth-child(2)');
if ($(this).hasClass('wi wi-celsius')) {
alert("C");
var convertedTemp = parseInt(temp.text()) * 9/5 + 32;
temp.html(Math.round(convertedTemp) + ' <i class="wi wi-fahrenheit"></i>');
} else {
alert("F");
var convertedTemp = (parseInt(temp.text()) - 32)/(9/5);
temp.html(Math.round(convertedTemp) + ' <i class="wi wi- celsius"></i>');
}
});
что с дополнительным интервалом в 'temp.html (Math.round (convertedTemp) + '); 'между wi- и celsius и один для fahrenheit. – Loaf
i-element всегда имеет один и тот же класс, поэтому он также входит, если вместо него. – Blauharley
, если вы добавляете элемент i, когда кто-то нажимает, к нему не будет прикреплен обработчик событий. вам нужно использовать делегирование событий или просто изменить существующий элемент вместо создания нового – Cruiser