@MFNIK

Почему не срабатывает скрипт jquery?

Есть скрипт, но не работает клик по кнопке close-panel
$(document).ready(function(){
	$('.add').on('click', function(event){ кликаем на блок add-caption, и добавляем класс active
		$('.add-caption').addClass('active');
	});
	$('.close-panel').on('click', function(event){ на блок close-panel, и удаляем класс active
		$('.add-caption').removeClass('active');
	});
});

Вот html код
<div class="add add-company-1">
              <span class="animate pulse-before"></span>
              <span class="animate pulse-after"></span>
              <div class="add-caption">
                <span class="close-panel">&times;</span>
              </div>
            </div>
  • Вопрос задан
  • 99 просмотров
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
Останавливайте всплытие события при клике на .close-panel, чтобы только что удалённый класс не добавлялся обратно (при обработке события в родительском элементе):

$('.close-panel').on('click', function(e) {
  e.stopPropagation();
  $('.add-caption').removeClass('active');
});

Или, уберите отдельный обработчик клика по .close-panel, а в обработчике клика по .add добавляйте или убирайте класс в зависимости от того, откуда пришло событие:

$('.add').on('click', function(e) {
  $('.add-caption').toggleClass('active', !$(e.target).hasClass('close-panel'));
});
Ответ написан
@Froggyweb
event.stopPropagation(); // Отмена всплытия

добавь после
$('.close-panel').on('click', function(event){

ну и почитай про всплытие событий :)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Stimulate
@Stimulate
могу
$('.close-panel').on('click', function(event){ 
    $('.add-caption').toggleClass('active');
  });
Ответ написан
Ваш ответ на вопрос

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

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