Desabilitar um link ao clicar uma vez

6 respostas
M

Bom dia.
Estou tentando varias maneiras de, ao clicar em um link ele fica desabilitado até carregar outra pagina.

testei com javascript, tipo this.disabled=‘disabled’ ou this.disabled=true, e jQuery, mas sem resultado.

Espero que possam me dar uma luz, porque tá dificil.

6 Respostas

D

Posta o código de como você tentou fazer utilizando o jquery

M
<script type="text/javascript">
        $("#listar")
        .click(function(){
        $("#listar").setAttribute("disable", "true");
        });
</script>

usei esse.

G

Uma solução é você tirar o href do link para ter mais controle:

<script>var clicou = false;</script>
<a href="javascript:;" onclick="if(!clicou){clicou = true; alert('só aceita o clique uma vez');}" >Clique aqui</a>

Então, ao invés alert voce poderia colocar document.location = ‘pagina_destino.html’; que funciona como o href.

att

M

Gustavo Marques:
Uma solução é você tirar o href do link para ter mais controle:

<script>var clicou = false;</script>
<a href="javascript:;" onclick="if(!clicou){clicou = true; alert('só aceita o clique uma vez');}" >Clique aqui</a>

Então, ao invés alert voce poderia colocar document.location = ‘pagina_destino.html’; que funciona como o href.

att

Interessante, nunca tinha pensado nisso, vou testar aqui.

edit: adaptei um pouco por causa do framework daki e deu certo, obrigado.

W

MusashiBR:
Gustavo Marques:
Uma solução é você tirar o href do link para ter mais controle:

<script>var clicou = false;</script>
<a href="javascript:;" onclick="if(!clicou){clicou = true; alert('só aceita o clique uma vez');}" >Clique aqui</a>

Então, ao invés alert voce poderia colocar document.location = ‘pagina_destino.html’; que funciona como o href.

att

Interessante, nunca tinha pensado nisso, vou testar aqui.

edit: adaptei um pouco por causa do framework daki e deu certo, obrigado.

Uma maneira eu diria mais elegante, seria fazer algo do tipo:

$(document).ready(function() {		
	$("a").on("click", function(e) {
		if($(this).hasClass("disabled")) {
			e.preventDefault();
			return;
		}			
		$(this).toggleClass("disabled");
	});			
});

//Daniel

M

windsofhell:

Uma maneira eu diria mais elegante, seria fazer algo do tipo:

$(document).ready(function() {		
	$("a").on("click", function(e) {
		if($(this).hasClass("disabled")) {
			e.preventDefault();
			return;
		}			
		$(this).toggleClass("disabled");
	});			
});

//Daniel

esta solução não deu certo por causa do datatables, estranho mas o mesmo ficou desabilitado se eu usar esse jquery.

Criado 8 de novembro de 2012
Ultima resposta 14 de nov. de 2012
Respostas 6
Participantes 4