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

POP UP DENTRO DE UMA FUNÇÃO

Como faço para um pop up aparecer somente quando eu clico no link? Fiz deste jeito e não deu certo, pois, o alerta apareceu logo ao entrar no programa.

<meta charset="UTF-8">

<script>

    function venhaAgora()  {

       alert("NAO ABRA")

}
document.write("Mas sera que isso é um programa? Descubra acessando o Alura clicando <a href='http://www.alura.com.br'>aqui</a>")
venhaAgora();
4 respostas

Ola Clara você pode fazer dessa Forma,

<!DOCTYPE html>
<html>
     <head>
        <meta charset="UTF-8">
        <title>Titulo da  Página</title>
    </head>
<body>

    <!-- no seu link coloque um id -->
    <a id="link" href="#">Link</a>

    <script>

        // Pega a tag a pelo ID
        var tagA =    document.querySelector("#link")

        /*
            Adicionar um evento de click na tag A para executar uma         
               funcao, e nessa funcao voce coloca o ALERT, quando clicar no A ele exibe o alert
        */ 
        tagA.addEventListener("click",  function(event) {
            event.preventDefault();
            alert("NAO ABRA");
        });

</script>

</body>
</html>


solução!

Boa noite Clara, tudo bem ?

Seu problema é porque você criou a função:

function venhaAgora(event) {  
    event.preventDefault();
    alert("NAO ABRA");
}

Porém ja esta executando ela, logo em baixo:

venhaAgora();

Quando na verdade, sua execução deve ser feita via click, então o primeiro passo seria apagar a linha onde você executa a função.

Em seguida, devemos vincular o click do link com a execução da função, você tem duas maneiras de fazer isso:

Primeira: Via onclick diretamente no html:

<a href="#" onclick="venhaAgora(event);">Mostrar</a>

Segunda: Via Javascript:

<a class="js-clicar" href="#" onclick="venhaAgora(event);">Mostrar</a>
const botao = document.querySelector(".js-clicar");
botao.addEventListener("click", venhaAgora);

Espero ter ajudado.

Obrigada gente!!

de nada, sempre que precisar não deixe de postar suas dúvidas.