JavaScript(jQuery) | проблема с заменой className для кнопки

104
14 июня 2021, 17:30

У меня есть кнопка. Я ей заменяю класс

var portalBox = jQuery('#portal-box');
portalBox.find(cancelClass).text('Cancel');
portalBox.find(cancelClass).attr('class','cancel');

Класс меняется, всё отлично. Но когда я хочу делать действия с новым классом, ничего не происходит. Будто jQuery не видит его.

jQuery('.cancel').on("click", function() {
alert('tested');

});

Как сделать так, что когда я меняю кнопке class, я мог работать с новым классом?

Answer 1

У вас не работает т к нужно подписать на событие динамический элемент

$("body").on('click','.E.btn',function(){alert("E");}); 
$("body").on('click','.C.btn',function(){alert("C");}); 
$("#changeClass").click(function(){ 
  $(".btn").toggleClass("E").toggleClass("C").html($(".btn").hasClass("C") ? "C" : "E"); 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
<button class="E btn">E</button> 
<button id="changeClass">Change class</button>

READ ALSO
svg miterlimit на две отдельные линии

svg miterlimit на две отдельные линии

Есть 2 линии с 4-мя точками: одна линия = 2 точки Необходимо применить один miterlimit stroke-miterlimit-svg сразу к 2-ум линиям так, как он применяется по умолчанию...

73
Выбрать элемент href в javascript&#39;е

Выбрать элемент href в javascript'е

Как выбрать элемент и при нажатии вывести alert('ok');

88
Замыкания в функциях

Замыкания в функциях

Почему вывод целый массив? Если убрать одну функцию , то все окВопрос касательно замыканий

112
Проблема с запуском локального сервера после клонирования проекта на другой компьютер

Проблема с запуском локального сервера после клонирования проекта на другой компьютер

Решил впервые поработать удаленно дома над своим проектом на nodejs, в котором установлены некоторые модули

101