javascript - 停止点击子项目

标签 javascript jquery

我的 html 看起来像这样:

<ul>
    <li class="database">Item One
        <ul>
            <li>Sub One</li>
            <li>Sub Two</li>
            <li>Sub Three</li>
        </ul>
    </li>
    <li class="database">Item Two
        <ul>
            <li>Sub One</li>
            <li>Sub Two</li>
            <li>Sub Three</li>
        </ul>
    </li>
<ul>

然后,我创建了此 JavaScript 以在单击时隐藏/显示子列表。

$(document).on('click', 'li.database', function (e) {
    e.stopPropagation();
    $(this).children('ul').children('li').toggle();
});

它可以工作,但是无论我是否单击子菜单,它都会隐藏列表。如何仅在单击根 li 时隐藏项目?我希望最终让子项目在单击时拥有自己的事件。

最佳答案

您可以检查是否 e.targete.currentTarget 相同.

这有效是因为 e.target是触发事件的元素,并且 e.currentTarget是事件监听器附加到的元素。

Example Here

$(document).on('click', 'li.database', function (e) {
  if (e.target === e.currentTarget) {
    $(this).children('ul').children('li').toggle();
  }
});

关于javascript - 停止点击子项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33976620/

相关文章:

javascript - 将表格单元格上的点击重定向到其中的 <a>

jquery - 单击多个按钮之一,在文本输入中输入值

javascript - div元素换位后效果

javascript - Google Visualization API,制作折线图

javascript - 仅隐藏和显示直接子项的第 n 项之后的 div 列表项

javascript - Cypress - 为所有 XHR 请求添加自定义 header

javascript - "Label tileLayer"黑客攻击导致无法点击的覆盖层

javascript - jQuery 函数重复。我怎样才能让它变得更短?

javascript - 使用 jQuery 重定向 YouTube 视频?

javascript - 使用javascript和jquery在div中设置图像的高度和宽度