preventDefault() 点击链接的事件我想停止重新加载页面而不是所有链接
preventDefault() click event for links what I want to stop to reload page not all links
const preventReloadLinks = container.querySelectorAll('.leftnav-link');
preventReloadLinks.forEach(link => {
addEventListener('click', function (e) {
e.preventDefault()
});
})
大家好我正在使用这段代码来停止导航中的链接导致页面重新加载,它有效但不幸的是它停止(阻止)点击我页面上的其他链接到我希望它们的外部页面work.I 尝试了更具体的选择器,但还是一样。我怎样才能停止这种行为或为其他链接扭转它。谢谢
在您创建的链接中添加另一个自定义 class,在国外链接中必须没有。
然后修改自定义的querySelector() class
您的代码为导航中的每个 link 添加了一个 eventListener 到 window。
addEventListener('click', function (e) { // same as window.addEventListener
e.preventDefault()
});
所以你错过了link.
,代码应该是
link.addEventListener('click', function (e) {
e.preventDefault()
});
但我建议改为委托,这样你就不必循环
container.addEventListener('click', function (e) {
const tgt = e.target.closest("a"); // or just e.target if there are no child elements in the link
if (tgt && tgt.classList.contains("leftnav-link")) {
e.preventDefault()
}
})
const preventReloadLinks = document.querySelectorAll('.leftnav-link');
for (let i = 0; i < preventReloadLinks.length; i++) {
preventReloadLinks[i].onclick = () => false;
}
const preventReloadLinks = container.querySelectorAll('.leftnav-link');
preventReloadLinks.forEach(link => {
addEventListener('click', function (e) {
e.preventDefault()
});
})
大家好我正在使用这段代码来停止导航中的链接导致页面重新加载,它有效但不幸的是它停止(阻止)点击我页面上的其他链接到我希望它们的外部页面work.I 尝试了更具体的选择器,但还是一样。我怎样才能停止这种行为或为其他链接扭转它。谢谢
在您创建的链接中添加另一个自定义 class,在国外链接中必须没有。
然后修改自定义的querySelector() class
您的代码为导航中的每个 link 添加了一个 eventListener 到 window。
addEventListener('click', function (e) { // same as window.addEventListener
e.preventDefault()
});
所以你错过了link.
,代码应该是
link.addEventListener('click', function (e) {
e.preventDefault()
});
但我建议改为委托,这样你就不必循环
container.addEventListener('click', function (e) {
const tgt = e.target.closest("a"); // or just e.target if there are no child elements in the link
if (tgt && tgt.classList.contains("leftnav-link")) {
e.preventDefault()
}
})
const preventReloadLinks = document.querySelectorAll('.leftnav-link');
for (let i = 0; i < preventReloadLinks.length; i++) {
preventReloadLinks[i].onclick = () => false;
}