Задать вопрос

Как выбрать элемент с несколькими классами?

Прошу помощи, есть несколько элементов вида
<div class="a" ... >
    <div class="b" ... >
    </div>
</div>
<div class="a" ... >
    <div class="b c" ... >
    </div>
</div>

Задача состоит в том, чтобы по клику по элементу <div class="b c" ... ></div> (и только по нему) запустить jQuery функцию.
Для вызова функции используется конструкция $('.b').click(function() { ... });, в таком виде все работает, функция вызывается. Но нужно ее вызывать для элемента (b c), а не (b). Проблема в том, что любые конструкции вида $('.b.c'), $('.b .c') $('.a .b.c') напрочь не дают результата, функция не вызывается ни в одном варианте кроме $('.b'). Как выбрать нужный элемент?
  • Вопрос задан
  • 1235 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 3
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
$('.b.с')

Это правильное обращение к мультиклассу.
Ответ написан
wapster92
@wapster92 Куратор тега JavaScript
@dmtokarev Автор вопроса
Все заработало в лучшем виде, с селекторами мне помогли, с остальным сам разобраться. Всем, кто мне помог - Антон, Павел Корнилов, Тимур Турсунбаев - огромное СПАСИБО!!!
В итоге получилось так:
<script type="text/javascript"> jQuery(function($) {
$(document).ready(function() { //когда страница полностью загружена
$('.spoiler').on('click', function(e) { //когда происходит клик по любой вкладке любого спойлера
if (e.which) //если этот клик произведен пользователем (кнопкой мыши)
    {
    $(this).addClass('user-click'); //добавить признак что клик произведен пользователем
    if ($(this).hasClass('active')) //если эта вкладка в момент клика была закрыта
        {
        $(document.querySelectorAll('.spoiler.active:not(.user-click)')).click();
        }
    $(document.querySelectorAll('.spoiler.active.user-click')).removeClass('user-click'); //удалить признак что клик произведен пользователем
    }
});
});
});
</script>

Правда тут заточено конкретно под мой случай, но принцип общий, вдруг кому пригодится
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы