Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

event.preventDefault() com href tag<a>

Estou usando um event.preventDefault() em uma tag para um evento de click, esta funcionando normalmente e estou fazendo a modificação que preciso. O problema é quando preciso fazer o link voltar a executar dentro da função anonima.

Por exemplo quando é button posso usar o event.submit(); Mas no caso da

(href) como posso fazer ela executar novamente depois de um event.preventDefault()
5 respostas

Oi Vanderson tudo bem?

Você pode fazer dessa forma usando o removeEventListener com os argumentos da função igualzinho ao addEventListener , segue um exemplo:

<!DOCTYPE html>
<html>
<body>

<a id="myAnchor" href="www.alura.com.br">Vá para Alura</a>



<script>
document.getElementById("myAnchor").addEventListener("click", function(event){
  event.preventDefault()
});

document.getElementById("myAnchor").removeEventListener("click", function(event){
  event.preventDefault()
});
</script>

</body>
</html>

Espero ter ajudado!!!

Eu entendi a sua resposta mas não era bem isso que eu queria, acho que não soube fazer a pergunta.

<!DOCTYPE html>
<html>
<body>

<a id="myAnchor" href="www.alura.com.br">Vá para Alura</a>


<script>
document.getElementById("myAnchor").addEventListener("click", function(event){
  event.preventDefault()
// aqui ficaria minha alteração e procedimentos
//então abaixo eu executaria o link normalmente por exemplo
  event.EXECUTA-O-LINK();
});
</script>

</body>
</html>

Queria fazer algo como exemplo acima, não sei, se fui claro

Mas qual a funcionalidade que você está tentando criar dentro do anchor? Precisa usar o event.preventDefault() mesmo? Talvez se criar uma condição if?

solução!

Entendi, o jeito mais fácil de fazer o que você quer é assim.OBS: O importante é não definir o href da tag a, para a tag a não funcionar como um link normal. E assim deixar o javascript mudar a página.

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
</head>
<body>

<a id="myAnchor" style="cursor:pointer" onclick="myClickFunction()"  href_javascript="http://www.alura.com.br" >Vá para Alura</a>


<script>
    function myClickFunction(){


        alert("faça algo de diferente aqui");

        let link=document.getElementById("myAnchor").getAttribute("href_javascript");

        location.replace(link);



    }

</script>

</body>
</html>

Entendi. Muito obrigado André.