gpt4 book ai didi

javascript - e.preventDefault() 之后的链接不会加载,没有 jQuery

转载 作者:行者123 更新时间:2023-11-29 20:33:51 25 4
gpt4 key购买 nike

我想在点击时加载一个链接,但它没有加载。我使用 preventDefault() 加载动画和 setTimeout()。我还应该使用什么?

我尝试return true,想把节点的路径链接保存在一个变量里,然后用location.href调用。但我不知道该怎么做。

<div class="content animated fadeInDown"> Table </div>

<td>
<a class="link" href="./pizzerias/lazzaroni.html">See More</a>
</td>

<script>
let links = document.querySelectorAll('.link');

links.forEach((link)=>{
link.addEventListener('click', (e)=>{

e.preventDefault();
let content = document.querySelector('.content');

content.classList.remove('fadeInDown');
content.classList.remove('animated');

content.classList.add('fadeOutUp');
content.classList.add('animated');

setTimeout(500);
});
});
</script>

最佳答案

preventDefault顾名思义。它可以防止事件的默认行为。

在链接的情况下,默认行为是将用户重定向到关联的 href 属性值。

您正在防止这种情况发生。所以它永远不会发生。 setTimeout 也没有执行任何操作。

如果你想在动画之后重定向用户,你需要明确地做:

links.forEach((link)=>{
link.addEventListener('click', (e)=>{

e.preventDefault();
let content = document.querySelector('.content');

content.classList.remove('fadeInDown');
content.classList.remove('animated');

content.classList.add('fadeOutUp');
content.classList.add('animated');

setTimeout(() => {
window.location.href = e.target.href;
}, 500);
});

关于javascript - e.preventDefault() 之后的链接不会加载,没有 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57321049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com