注册单击列表项子元素

时间:2016-03-18 14:52:12

标签: javascript jquery html

我有以下HTML结构:

<li class="is_tab" id="geometry_tab">
     <a data-toggle="collapse" href="#geometry_tab_collapse">
         <i class="pe-7s-plugin"></i>
         <p>Geometry
            <b class="caret"></b>
         </p>
     </a>
     <div class="collapse" id="geometry_tab_collapse">
         <ul class="nav">
             <li class="is_tab" id="pipe_geometry_tab"><a href="#">Pipe Geometry</a></li>
         </ul>
     </div>
</li>

使用jQuery,我的目标是在点击时检索<li> ID,无论用户是点击li.is_tabli.is_tab > ali.is_tab > a > p还是{{1} }。此外,我希望相同的事件处理程序能够区分li.is_tab > a > i#pipe_geometry_tab上的点击次数,即只需在单击其中一个或另一个时返回单个正确的ID。

我的问题是:

给出以下代码段,

#geometry_tab

是否有$(<selector>).on("click", function(){...}) 会在<selector>上注册点击,无论其是li.is_taba还是i点击了{1}}个孩子?

如果没有,我会很感激如何解决这个问题。

PS我已经尝试了很多东西,但不是用这些东西臃肿这个帖子,我希望有经验的人觉得这有一个明显的解决方案。

1 个答案:

答案 0 :(得分:2)

$('li.is_tab').on("click", function(e){...});

^^应该可以正常工作,任何点击li的内容都将被处理。

如果您想要点击li,可以查看e.currentTarget,如果您想查看点击的实际元素,可以使用e.target

因此,如果您想要点击id的{​​{1}},您可以使用li