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

Executar Jquery ao clicar em um href

Olá.

No meu html tenho um href e gostaria de que ao clicar neste link uma função fosse executada:

html

<a id="inativar"  href="#">
    <i>Inativar</i>
</a>

E gostaria de que ao clicar neste link a função abaixo fosse chamada:

$(document).ready(function () {
    $("inativar").click(function () {
        alert("entrou!");
    });
});

Do modo que eu fiz não está funcionando... Alguem saberia me dizer o que está faltando?

Obs: já tentei de várias formas:

 $("#inativar").click(function ()
 $("a.inativar").click(function ()
 $("#inativar a").click(function ()
 $('a.inativar').click(function ()
5 respostas

Gustavo, o que falta é impedir a ação padrão do navegador, que é acessar o link descrito.

Passe o parâmetro event pra sua função e chame o método preventDefault()

$(document).ready(function () {
    $("#inativar").click(function (event) {
        event.preventDefault();
        alert("entrou!");
    });
});

É importante reparar também que você precisa usar o # na query (#inativar) pois senão o jQuery vai buscar por uma tag <inativar> e não por uma tag <a> com o atributo id="inativar".

Ola Gustavo, da forma que você fez:

$(document).ready(function () {
    $("inativar").click(function () {
        alert("entrou!");
    });
});

Esta quase correta, mas veja que na busca pelo a deve ser feita por id, então devemos adicionar o # no seletor do jquery: $("#inativar").

Como você disse que tentou dessa forma em uma das formas citadas, peço que abre o navegador e veja o console, se estiver no Windows é só pressionar F12, verifique se deu algum erro ao realizar o clique.

Obs: Não esqueça de corrigir o seletor.

Aqui esta um link com o código idêntico ao seu, copiei, colei e corrigi: https://jsfiddle.net/mahenrique94/1ak2gmcs/

Detalhe importante: se esse link/botão existir mais de uma vez na sua página, o ideal é utilizar uma classe e o seletor de classe no jQuery, o ., para que a ação fique atrelada ao link específico:

<a class="inativar"  href="#">
    <i>Inativar</i>
</a>
$(document).ready(function () {
    $(".inativar").click(function (event) {
        event.preventDefault();
        alert("entrou!");
    });
});
solução!

Obrigado pelas respostas!! Todas estão certas, inclusive o que eu tinha feito tb estava. O grande problema foi que o cache do navegador me traiu hehehehe. O javascript antigo estava sendo executado.

Fiz exatamente igual no exemplo postado (apenas com o $("#inativar").click(function () ) e funcionou.

Outra forma que tb funciona:

$(document).ready(function(){
   $('a[href="#sign_up"]').click(function(){
      alert('Sign new href executed.'); 
   }); 
});
<a class="sign_new" href="#sign_up">Sign up</a>

Boa Gustavo \o/