【发布时间】:2015-10-07 10:03:13
【问题描述】:
我有一个 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>
这些是选项卡,所以当我单击一个选项卡时,我在 Meteor 中有一个单击事件,为新选项卡提供 chat-tab-sel 类并从旧选项卡中删除此类(标准选项卡行为)。
我的问题是,根据用户点击的位置,我的 event.target 并不总是父 div chat-tab,而是子 span 之一。我需要向父 div 添加/删除类。
我认为如果父母有display: block 它可能会工作,但在这种情况下我需要它是display: flex 因为在孩子身上有灵活的宽度是有意义的。
那么:当用户点击一个孩子时,是否可以确保父 div 被定位?
【问题讨论】:
-
$( event.target ).closest( ".chat-tab" )应该可以为您提供所需的内容。 -
您可以在子跨度上尝试
pointer-events: none;的 css 样式。也许只有父 div 会注册点击。 (不确定这是否可行) -
显示切换类的事件处理程序代码。
标签: javascript html css meteor click