У меня есть DIV (вкладка) с 3 пролетом внутри, как это:Всегда выбрать родительский элемент при нажатии на ребенка
<div class="chat-tabs">
<div class="chat-tabs-cont">
<div id="chat-tab-1" class="chat-tab chat-tab-sel">
<span class="chat-tab-n">1</span>
<span class="chat-tab-t">Tab text 1</span>
<span class="chat-tab-c">11:00</span>
</div>
<div id="chat-tab-2" class="chat-tab">
<span class="chat-tab-n">2</span>
<span class="chat-tab-t">Tab text 2</span>
<span class="chat-tab-c">11:30</span>
</div>
</div>
</div>
Эти вкладки, так что, когда я нажимаю на одной вкладке, у меня есть событие click в Meteor, чтобы дать новой вкладке класс chat-tab-sel
и удалить этот класс со старой вкладки (стандартное поведение вкладки).
Моя проблема в том, что в зависимости от того, где пользователь нажимает, мой event.target
не всегда является родительским div chat-tab
, но один из детей span
. И мне нужно добавить/удалить классы родительскому div
.
Я думаю, что если у родителя есть display: block
, это может сработать, но в этом случае мне нужно, чтобы оно было display: flex
, потому что имеет смысл иметь гибкую ширину для детей.
Итак: Возможно ли, чтобы родительский div был нацелен, когда пользователь нажимает на ребенка?
'$ (event.target) .closest (" .chat-tab ")' должен получить то, что вы ищете. –
Вы можете попробовать стиль css 'pointer-events: none;' на дочерних участках. Возможно, тогда только родительский div зарегистрирует клик. (Не уверен, что это будет работать) – wintvelt
показать код обработчика событий, который переключает класс. – charlietfl