Tenho um link de âncora que desejo desativar assim que o usuário clicar nele. Ou remova a marca âncora de todo o texto, mas definitivamente mantenha o texto.
<a href='' id='ThisLink'>some text</a>
Posso fazer isso facilmente com um botão adicionando .attr("disabled", "disabled");
Eu adicionei com sucesso a propriedade disabled, mas o link ainda era clicável.
Eu realmente não me importo se o texto está sublinhado ou não.
Qualquer pista?
Quando você clica no músico errado, ele deve apenas adicionar "Errado" e então se tornar impossível de clicar.
Quando você clica e acerta, deve adicionar "Awesome" e, em seguida, desativar todas as <a>
tags.
Respostas:
Acabei de perceber o que você estava pedindo (espero). Aqui está uma solução feia
fonte
O método mais limpo seria adicionar uma classe com eventos de ponteiro: nenhum quando você deseja desabilitar um clique. Funcionaria como um rótulo normal.
fonte
pointer-events:none
também desativa ocursor
texto do título e outros eventos de mouseover.fonte
javascript: URI
, ele avalia o código no URI e substitui o conteúdo da página pelo valor retornado, a menos que o valor retornado sejaundefined
. Ovoid
operador pode ser usado para retornarundefined
. Por exemplo:<a href="javascript:void(0);">
Click here to do nothing
</a>
observe, entretanto, que ojavascript:
pseudo protocolo é desencorajado em relação a outras alternativas, como manipuladores de eventos discretos.Use o estilo CSS de eventos de ponteiro . (como sugeriu Jason MacDonald)
Consulte MDN https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events . É compatível com a maioria dos navegadores.
A simples adição do atributo "disabled" à âncora fará o trabalho se você tiver uma regra CSS global como a seguinte:
fonte
$("#elementid").attr("disabled", "disabled");
. Também pode ser útil incluircursor: default
no CSS (conforme sugerido por Muhammad Nasir).<a />
elementos não têm um atributo desativado - parece estranho.ou
Depende da situação
fonte
O bootstrap nos fornece
.disabled
classe. Por favor, use.Mas a
.disabled
classe só funciona quando a tag 'a' já tem a classe 'btn'. Não funciona em nenhuma tag 'a' antiga. Abtn
classe pode não ser apropriada em algum contexto, pois tem conotações de estilo. Nos bastidores, a.disabled
classe definepointer-events
comonone
, para que você possa fazer o CSS fazer o mesmo que Saroj Aryal e Vitrilo sugeriram. (Obrigado, Les Nightingill por este conselho).fonte
Adicione uma
css
classe:Adicione isto
jquery
:fonte
Apenas remova o
href
atributo da tag âncora.fonte
A melhor maneira é evitar a ação padrão. No caso da tag âncora, o comportamento padrão é redirecionar para o
href
endereço especificado.Portanto, seguir o javascript funciona melhor na situação:
fonte
Você pode usar o evento onclick para desativar a ação de clique:
Ou você pode simplesmente usar algo diferente de uma
<a>
tag.fonte
text-decoration: none
e.disabledLink { color: #000 !important; }
para fazer com que pareça um texto normal.Os comentários de Jason MacDonald funcionaram para mim, testados no Chrome, Mozila e IE.
Adicionada cor cinza para mostrar o efeito de desabilitação.
Jquery estava selecionando apenas o primeiro elemento na lista de âncoras, adicionado metacaractere (*) para selecionar e desativar todos os elementos com id
#ThisLink
.fonte
Escreva uma única linha de código jQuery
se você quiser escrever no arquivo css
fonte
Crie a seguinte classe na folha de estilo:
Adicione esta classe ao seu link dinamicamente como segue.
fonte
Experimente isto:
fonte
Simplesmente no SASS:
fonte
Este é o método que usei para desativar. Espero que ajude.
fonte
Esta seria outra maneira de fazer isso, o manipulador com
return false
, que desabilitará o link, será adicionado após um clique.fonte
O jeito mais facil
Em seu html:
Em seu js:
Se você usar como atributo funciona perfeitamente
fonte