alexyarik
@alexyarik
Битрикс разработчик

Почему не срабатывает удаление класса с помощью toggleClass?

Не могу понять почему не удаляется класс sb-search-open у элемента . Тестовая страница ivdela.ru/test.php. Сайт на Битриксе
Как можно отслеживать сработку/не сработку событий, есть ли инструменты для этого?
Код:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js">
		<script type="text/javascript">
$(document).ready(function(){
$('#button-close').click(function(){
  $('#sb-search').toggleClass('sb-search-open');
});
}); 
</script>
  • Вопрос задан
  • 306 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Если поставить брейкпоинт на изменение атрибутов тега #sb-search, то видно, что класс удаляется, а потом сразу ставится на место. Скорее всего, срабатывает обработчик клика, который открывает поле поиска изначально. Попробуйте добавить в свой обработчик stopPropagation().
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Lynn
@Lynn
nginx, js, css
Потому что вы забыли закрыть первый тег script
Ответ написан
Deonisius
@Deonisius
Родился в 11110110111 году, 11000 января.
Добавьте отмену всплытия события:
$(document).ready(function() {
    $('#button-close').click(function(e) {
        e.stopPropagation();
        $('#sb-search').toggleClass('sb-search-open');
    });
});
Ответ написан
Комментировать
inik23
@inik23
типа разработчик
$(document).ready(function(){
$(document.body).on( 'click' , '#button-close' , function(){
  $('#sb-search').toggleClass('sb-search-open');
});
});
Ответ написан
Ваш ответ на вопрос

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

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