Изменить значок начальной загрузки с помощью функции onclick

Я хочу изменить значок начальной загрузки bi bi-caret-right-fill на bi bi-caret-down-fill.

<i onclick = "myFunction(this)" class = "bi bi-caret-right-fill"></i>
function myFunction(x) {
   x.classList.toggle("bi bi-arrow-down-circle");
}

Метод toggle удаляет класс, если он уже установлен. Вы не хотите удалять класс bi, так что ему вообще не место. Вы хотите переключить bi-caret-right-fill (это уже установлено, и его нужно удалить) и bi-arrow-down-circle (это еще не установлено, поэтому его нужно добавить).

CBroe 05.04.2022 12:17

Так было бы: x.classList.toggle("bi-caret-right-fill"); x.classList.toggle("bi-arrow-down-circle"); не полагаться на порядок в fa css.

freedomn-m 05.04.2022 12:25

Обратите внимание, что classList.toggle не позволяет использовать несколько классов, вы должны (утомительно) делать их один за другим.

freedomn-m 05.04.2022 12:29
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
3
53
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Попробуй это:

<i onclick = "myFunction(this)" class = "bi bi-caret-right-fill"></i>
function myFunction(x) {
  if (x.classList.contains("bi-caret-right-fill")) {
    x.classList.remove("bi-caret-right-fill");
    x.classList.add("bi-arrow-down-circle");
  } else if (x.classList.contains("bi-arrow-down-circle")) {
    x.classList.add("bi-caret-right-fill");
    x.classList.remove("bi-arrow-down-circle");
  }
}
Ответ принят как подходящий

В вашем случае вам нужно сделать так

Надеюсь, что это поможет вам

function myFunction(x) {
   x.classList.toggle("bi-caret-right-fill"); 
   x.classList.toggle("bi-arrow-down-circle"); 
}
<link href = "https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.css" rel = "stylesheet"/>
<link href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel = "stylesheet"/>
<i onclick = "myFunction(this)" class = "bi bi-caret-right-fill"></i>
.classList.toggle("singleClass") работает просто хорошо, вы не используете имеют для добавления/удаления.
freedomn-m 05.04.2022 12:30

Да, правильно @freedomn-m Вы можете опубликовать ответ, если хотите.

Nirav Joshi 05.04.2022 12:31

Другие вопросы по теме