@raw1

Почему при динамической смене класса элемента и последующим вызова .click ни чего не происходит?

$this.text('Свернуть').removeClass('getAllContent').addClass('crop');
$('.crop').click(function() {alert()})

Когда меняю класс и вызываю .click() ни чего не происходит .
  • Вопрос задан
  • 221 просмотр
Решения вопроса 1
coderisimo
@coderisimo Куратор тега JavaScript
$('body').on('click', '.crop', function () {   alert('it works!');  });


теперь после добавления элементу класса "crop" и клике на нем, будет срабатывать alert()

ЗЫ Для старых версий jQ фунция live()

подробности -> api.jquery.com/live
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Оберни this в скобки
Ответ написан
bootd
@bootd
Гугли и ты откроешь врата знаний!
Думаю тут 2 пути:
1)
$this.text('Свернуть')
  .removeClass('getAllContent')
  .addClass('crop')
  .click(function() {alert()})


Сразу класс добавили и сразу клик повесили. Вот только это плохой подход

2)
$this.text('Свернуть').removeClass('getAllContent').addClass('crop');
$(document).on('click', '.crop', function() {alert()})


Если так, то мне кажется просто такого элемента еще нет, и так мы повесим события даже на вновь созданные элементы или классы. Мне кажется именно поэтому не добавляется. Хотя и ошибка может скрываться совсем в другом
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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