我正在尝试创建一个带有音乐播放器的单页应用程序。这就是为什么我想阻止
<a>
标签重定向,从而导致播放器停止。
我尝试了几种方法,例如:
document.addEventListener('click', event => {
if (event.target.tagName === 'A') {
event.preventDefault();
navigate(event.target.href);
}
});
或
document.addEventListener('DOMContentLoaded', () => {
const links = document.querySelectorAll('a');
links.forEach(link => {
link.addEventListener('click', event => {
event.preventDefault();
navigate(event.target.href);
});
});
});
或
<body onload="preventRedirect()">...</body>
function preventRedirect(){
const links = document.querySelectorAll("a");
links.forEach(link => {
link.addEventListener("click", event => {
event.preventDefault();
navigate(link.href);
})
})
}
这些都不起作用。然而,奇怪的是,如果我手动执行该函数或在控制台内添加事件侦听器,一切最终都会按预期工作。 我知道我应该使用按钮,但这会破坏我的设计美感。 我尝试过将
href
设置为“#”并使用 onclick
进行导航,这可行,但很乏味,我希望我最初的想法最终能够实现。