После смены класса елемента продолжает отрабатывать старые обработчик событий
Обработчики событий:
$(document).on('click','.old-class', function () {
--\--
}
$(document).on('click','.new-class', function () {
--\--
}
<input class="old-class">
Меняю класс в елементе:
$('input').removeClass('old-class');
$('input').addClass('new-class');
в DOM елемент отображается с новым классом :input class="new-class", но на него продолжает реагировать обработчик события для класса old-class.
Подскажите пожалуйста, как решить эту проблему?
Ответы (1 шт):
Автор решения: Bookamba
→ Ссылка
В вашем коде-примере есть синтаксические ошибки. Не хватает закрывающих скобок.
Посмотрите реализованный пример CodePen клик
JS:
$(document).on('click','.old-class', function () {
console.log("old-class");
});
$(document).on('click','.new-class', function () {
console.log("new-class");
});
$("#btn").click(function() {
$('input').removeClass('old-class');
$('input').addClass('new-class');
});
HTML:
<input class="old-class">
<button id="btn">Remove old-class</button>