Функция jQuery — click для класса, добавленного через ‘addClass’, не отвечает

#jquery #function #click #addclass #removeclass

#jquery #функция #нажмите #addclass #removeclass

Вопрос:

Я добавил класс через addClass . У меня есть функция onclick для этого добавленного класса. Однако jQuery игнорирует функцию click, которую я создал для этого класса.

Я протестировал это на JSFIDDLE здесь

  <style type="text/css">
 .openInfo:hover{color:red}
 .closeInfo:hover{color:blue}
 </style>

 <div class="openInfo">OPEN</div>

<script>
$('.openInfo') //executes correctly
    .click(function() {
        $(this).text("CLOSE");
        $(this).addClass('closeInfo');
        $(this).removeClass('openInfo');
});

$('.closeInfo') //ignored
    .click(function() {
        $(this).text("OPEN");
        $(this).addClass('openInfo');
        $(this).removeClass('closeInfo');
});
</script>
  

Кроме того, по какой-то причине ни один из кода не работает на jsfiddle, если я использую 1.5.2?!
Это, должно быть, ошибка jsfiddle, верно? Потому что я получаю те же результаты с 1.5.2, по крайней мере, на моем тестовом сервере.

Ответ №1:

Поскольку вы добавляете этот класс динамически, вам нужно действовать, а не нажимать:

 
$('.closeInfo') //ignored
    .live("click", function() {
        $(this).text("OPEN");
        $(this).addClass('openInfo');
        $(this).removeClass('closeInfo');
});
  

Комментарии:

1. аааа. Теперь я понимаю, как использовать ‘live’, который я вижу вокруг. Приветствия 🙂