Eu tenho alguns HTML e jQuery que deslizam um para div
cima e para baixo para mostrar ou ocultar quando um link é clicado:
<ul class="product-info">
<li>
<a href="#">YOU CLICK THIS TO SHOW/HIDE</a>
<div class="toggle">
<p>CONTENT TO SHOW/HIDE</p>
</div>
</li>
</ul>
$('div.toggle').hide();
$('ul.product-info li a').click(function(event){
$(this).next('div').slideToggle(200);
}
Minha pergunta é: como faço preventDefault()
para interromper o link como um link e adicionar "#" ao final do meu URL e pular para o topo da página?
Não consigo descobrir a sintaxe correta, continuo recebendo um erro dizendo
preventDefault () não é uma função.
javascript
jquery
Chris J Allen
fonte
fonte
href
atributo @KLVTZ da tag anchor (a
) pode não estar vazio ... Mas podemos configurá-lo comojavascript:<code-here>
legal / válido. Em seguida, inserimos<code-here>
apenas uma declaração vazia adicionando um ponto e vírgula. Dessa forma, o link não faz nada.É sugerido que você não use
return false
, pois três coisas ocorrem como resultado:Portanto, neste tipo de situação, você realmente deve usar apenas
event.preventDefault();
Arquivo do artigo - jQuery Events: Stop (Mis) Using Return False
fonte
Como alternativa, você pode retornar false a partir do evento click:
O que impediria o disparo do A-Href.
Observe, no entanto, por razões de usabilidade, em um mundo ideal que o href ainda deve ir a algum lugar, para as pessoas que desejam abrir o link em uma nova guia;)
fonte
Esta é uma solução não JQuery que acabei de testar e funciona.
fonte
Usar
fonte
href="javascript:// Send Email"
Contudo uma outra maneira de fazer isso em JavaScript usando
inline onclick
,IIFE
,event
epreventDefault()
:fonte
<a href='#' onclick="event.preventDefault()">Click Me</a>
após várias operações, quando a página finalmente deve ir para o link, você pode fazer o seguinte:
fonte
preventDefault
e depois executar a ação padrão você mesmo? Basta fazer o que você precisa adicionar e deixar o padrão ainda ocorrer.Por que não apenas fazê-lo em css?
Retire o atributo 'href' na sua marca de âncora
Em seu css,
fonte
Se a interrupção da propagação do evento não o incomoda, basta usar
no final do seu manipulador. No jQuery, impede o comportamento padrão e interrompe a borbulhagem do evento.
fonte
Você pode fazer uso da
return false;
chamada de evento para interromper a propagação do evento, que age como umaevent.preventDefault();
negação. Ou você pode usar ojavascript:void(0)
atributo href para avaliar a expressão especificada e retornarundefined
ao elemento.Retornando o evento quando é chamado:
Caso nulo:
Você pode ver mais sobre: Qual é o efeito de adicionar void (0) para href e 'return false' no ouvinte de evento de clique da tag anchor?
fonte