Je veux créer une balise d'ancrage qui exécute du JavaScript, puis continue à aller où que ce href
soit. L'appel d'une fonction qui exécute mon JavaScript, puis définit window.location
ou top.location
à l' href
emplacement ne fonctionne pas pour moi.
Alors, imaginez que j'ai un élément avec l'identifiant "Foo" sur la page. Je souhaite créer une ancre similaire à:
<a href="#Foo" onclick="runMyFunction(); return false;">Do it!</a>
Lorsque vous cliquez dessus, je veux exécuter runMyFunction, puis sauter la page vers #Foo
(ne pas provoquer de rechargement - l'utilisation top.location
entraînerait le rechargement de la page).
Suggestions? Je suis heureux d'utiliser jQuery si cela peut aider ici ...
javascript
jquery
html
anchor
psychotik
la source
la source
return true;
est la solution, mais vous pouvez également appelerlocation.hash = '#Foo'
. Cela ne rechargera pas la page.Réponses:
Juste à la
return true
place?La valeur de retour du
onClick
code est ce qui détermine si l'action cliquée inhérente au lien est traitée ou non - le retourfalse
signifie qu'elle n'est pas traitée, mais si vous revenez,true
le navigateur procédera à son traitement après le retour de votre fonction et passera à la bonne ancre.la source
undefined
étant considérée comme fausse à ces fins.et
De cette façon, vous aurez votre fonction exécutée ET vous suivrez le lien ET vous suivrez le lien exactement après que votre fonction a été exécutée avec succès.
la source
Si le lien ne doit changer d'emplacement que si l'exécution de la fonction réussit, faites-le
onclick="return runMyFunction();"
et dans la fonction, vous retournerez vrai ou faux.Si vous souhaitez simplement exécuter la fonction, puis laisser la balise d'ancrage faire son travail, supprimez simplement l'
return false
instruction.En remarque, vous devriez probablement utiliser un gestionnaire d'événements à la place, car le JS en ligne n'est pas une façon très optimale de faire les choses.
la source
Lorsque vous créez une structure HTML propre, vous pouvez l'utiliser.
la source