我正在尝试用音乐播放器创建一个单页应用程序。这就是为什么我想阻止
<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
s到“#”并使用
onclick
导航,这很有效,但很乏味,我希望我最初的想法最终能够奏效。