Quero criar uma tag âncora que execute algum JavaScript e prossiga para ir aonde quer que esteja href
levando. Invocar uma função que executa meu JavaScript e, em seguida, define window.location
ou top.location
para o href
local não funciona para mim.
Então, imagine que tenho um elemento com id "Foo" na página. Quero criar uma âncora semelhante a:
<a href="#Foo" onclick="runMyFunction(); return false;">Do it!</a>
Quando clicado, desejo executar runMyFunction e então pular a página para #Foo
(não causar uma recarga - usar top.location
faria com que recarregasse a página).
Sugestões? Fico feliz em usar jQuery se puder ajudar aqui ...
javascript
jquery
html
anchor
psicótico
fonte
fonte
return true;
é a solução, mas você também pode ligarlocation.hash = '#Foo'
. Não irá recarregar a página.Respostas:
Em
return true
vez disso?O valor de retorno do
onClick
código é o que determina se a ação clicada inerente do link é processada ou não - retornarfalse
significa que não foi processado, mas se você retornartrue
, o navegador continuará a processá-lo depois que sua função retornar e irá para a seção adequada âncora.fonte
undefined
é considerado falso para esses propósitos.e
Desta forma, você terá sua função executada E você seguirá o link E você seguirá o link exatamente após sua função ter sido executada com sucesso.
fonte
Se o link só mudar de local se a execução da função for bem-sucedida, faça
onclick="return runMyFunction();"
e na função você retornaria verdadeiro ou falso.Se você deseja apenas executar a função e deixar a tag âncora fazer seu trabalho, simplesmente remova a
return false
instrução.Como uma observação lateral, você provavelmente deve usar um manipulador de eventos, já que JS embutido não é uma maneira muito ideal de fazer as coisas.
fonte
Ao fazer uma estrutura HTML limpa, você pode usar isso.
fonte