Я пытаюсь создать кнопку Hide/Show с помощью jQuery. Когда кликнуто .cminus, ему нужно скрыть .arrowwrap и .commentbody и заменить его собственный класс на cplus. Затем, если нужно щелкнуть .cplus напротив, должно произойти.Событие JQuery для замещенного класса
Задача 1: В примере ниже после замены .cminus на .cplus, .cplus не запускает событие клика при его нажатии.
(EDIT проблема 2 вынесена в отдельный билет) Проблема 2: Я не доходя до .commentbody право скрыть/показать
Html:
<div class="commentline">
<div class="carrowholder">
<div class="cminus"></div>
<div class="arrowwrap">
</div>
</div>
<div class="commentholder">
<div class="commenttitle">
Title
</div>
<div class="commentbody">
Body
</div>
</div>
</div>
Jquery код:
$('.cminus').click(function(e) {
$(this).next('.arrowwrap').hide();
$(this).parent().next('.commentholder .commentbody').hide();
$(this).removeClass('cminus');
$(this).addClass('cplus');
})
$('.cplus').click(function(e) {
alert("clicked cplus");
$(this).next('.arrowwrap').show();
$(this).addClass('cminus');
$(this).removeClass('cplus');
})
Относительно проблемы 1. Не заменяют ли классы? Можете ли вы расширить свое решение? И удаление .commentholder не исправляет вторую проблему. – DavidW
Если вы добавите привязку post к классу, это событие не будет привязано к этому элементу, если вы не используете делегированные события. –
Получил. Исправлена первая проблема с единственным прослушивателем событий. Все еще интересно о втором, хотя – DavidW