Silver13
@Silver13
Ищущий ответы

Как сделать циклическую замену css класса по клику с помощью js+jquery?

Привет! Подскажите, пожалуйста, есть класс

div class="one"

меняю его по клику с помощью js на div class="two" и обратно

$('.one').click(function() {
$(this).replaceWith('div class="two"');
});
$('.two').click(function() {
$('.two').replaceWith('div class="one"');
});

Это работает только однократно. Если сделать перезагрузку страницы, то снова работает, я добавил ко второму клику

return document.location.reload();

проблема решилась, но как сделать без обновления страницы?
  • Вопрос задан
  • 332 просмотра
Решения вопроса 2
devellopah
@devellopah
я просто оставлю это здесь...
Ответ написан
Комментировать
@choupa
Архитектор (обычный, который строит)
Какие-то все злые!

Вы в коде заменяет сами дивы. При этом обработчики событий, которые были на "старых" дивах пропадают. Поэтому всё срабатывает один раз. Конечно можно повесить обработчики и на "будущие" дивы с помощь live. Но не стоит.

Замена класса — основная типовая операция, не надо заменять дивы, замените только класс с помощью addClass и removeClass, и обработчики останутся на месте.

Islam Ibakaev запостил пример.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
У вас не код, а наркомания, добавить класс addClass('one'), удалить класс removeClass('one'), учите документацию.
И да, не занимайтесь этим, это не Ваше похоже, либо просто сначала очень-очень много читайте и только потом делайте
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы