Tenho links como este:
<a href="#" onclick="myfunc({a:1, b:'hi'})" />click</a>
<a href="#" onclick="myfunc({a:3, b:'jo'})" />click</a>
E eu gostaria de fazer um por preventDefault()
dentro myfunc()
, porque um #
será adicionado na barra de endereço ao clicar no link (sem fazer return false;
ou href='javascript:void(0);'
)
Isso é possível? Posso colocar o evento lá dentromyfunc()
javascript
jquery
html
Omu
fonte
fonte
return false
apenas pára a propagação dentro do jQuery.Respostas:
Eu acredito que você pode passar
event
para a função inline que será oevent
objeto para o evento gerado em navegadores compatíveis com W3C (ou seja, versões mais antigas do IE ainda exigirão detecção dentro de sua função de manipulador de eventos para olharwindow.event
).Um exemplo rápido .
event
passado para oonclick
manipulador para algo comoe
, clique em executar e observe que o redirecionamento ocorre após o alerta (o painel de resultados fica branco, demonstrando um redirecionamento).fonte
myfunc(event, {a:123, b:"asdas"})
function myfunc(o, e) {...}
ele pode ser chamado demyfunc({a:1, b:'hi'}, event)
.function sayHi() { event.preventDefault(); alert("hi"); }
A solução mais simples é simplesmente:
Na verdade, é uma boa maneira de invalidar o cache para documentos com um substituto para navegadores não habilitados para JS (sem invalidação de cache se não houver JS)
Se o JavaScript estiver habilitado, ele abre o PDF com uma string de consulta que impede o cache, caso contrário, apenas abre o PDF.
fonte
Experimente isto:
fonte
$("body").on("click","a",function(e) { e.preventDefault() });
. Em qualquer dos casos, nenhuma das soluções afetará significativamente o desempenho.fonte
return false
não é recomendado, pois também impedirá que todos os outros manipuladores de eventos naquele elemento sejam executados e parará o evento de borbulhar para elementos superiores.Adicione uma classe exclusiva aos links e um javascript que evita o padrão em links com esta classe:
fonte
Você não pode simplesmente remover o atributo href da tag a?
fonte
Acho que quando usamos onClick queremos fazer algo diferente do padrão. Portanto, para todos os seus links com onClick:
fonte
Simples!
fonte
Você pode acessar o evento onclick assim:
e em sua função javascript, meu conselho é adicionar a instrução de primeira linha como:
então use em todos os lugares e como variável de evento
fonte
e.preventDefault (); de https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault
Ou tenha o retorno falso do seu método.
fonte
Sem qualquer biblioteca JS ou jQuery. Para abrir uma bela janela pop-up, se possível. Falha com segurança ao abrir o link normal.
E a função auxiliar:
fonte