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

时间:2019-08-02 06:31:13

标签: javascript twitter-bootstrap dom-events

我想在点击时加载链接,但不加载。我使用User_temp_Table'来加载动画和preventDefault()。我还应该使用什么?

我尝试setTimeout(),并考虑将节点的路径链接保存在变量中,然后使用return true进行调用。但是我不知道该怎么做。

location.href

2 个答案:

答案 0 :(得分:2)

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);
});

答案 1 :(得分:0)

setTimeout()要求将回调函数作为其第一个参数,但您只需要花费时间。会是

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