使href中的每个带有哈希(#)的锚标记取消点击
有没有办法在javascript中实现这一点。下面是锚标签的例子
<a href="#">Example</a>
回答
使用事件委托,您可以将事件侦听器附加到正文,并preventDefault在<a>单击具有该 href 的任何事件侦听器时。
document.body.addEventListener('click', (e) => {
const a = e.target.closest('a');
if (a.href === '#') {
e.preventDefault();
}
});
<a href="#">Example</a>
<a href="#">Example</a>
这将阻止#URL 中的 。如果你想让它真正无法点击,你可以使用pointer-events: none.
a[href="#"] {
pointer-events: none;
}