我制作了一个基本的移动导航下拉菜单,它使用嵌套标记打开导航的第二个(和第三个)级别。但是因为这些元素嵌套在锚标签中,所以它们也会触发默认的锚事件。点击锚点的子元素时,是否有办法阻止锚点默认事件?JavaScript - 阻止父锚元素上的event.default
HTML
<ul class="main-menu">
<li>
<a href="some-link.html">Some Link
<span class="target"></span>
</a>
<ul class="submenu">
<li><a href="some-link.html">Some Link</a></li>
<li><a href="some-link.html">Some Link</a></li>
<li><a href="some-link.html">Some Link</a></li>
</ul>
</li>
</ul>
JavaScript示例
$('span.target').on('click', function(event) {
$(event.target).parent().preventDefault();
// Do somthing
});
尝试'event.stopImmediatePropagation()' –
你为什么要使用阿克尔标签,如果你不想使用它呢?为什么不使用div或其他跨度并使用js来实现你想要的行为? – Cruiser
preventDefault不是DOM的一部分,它是事件的一部分。听起来像你想要https://api.jquery.com/event.stoppropagation/ – epascarello