我製作了一個基本的移動導航下拉菜單,它使用嵌套標記打開導航的第二個(和第三個)級別。但是因爲這些元素嵌套在錨標籤中,所以它們也會觸發默認的錨事件。點擊錨點的子元素時,是否有辦法阻止錨點默認事件?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