Je veux créer une balise d'ancrage qui exécute du JavaScript et qui continue ensuite où que href
le prenne. L'appel d'une fonction qui exécute mon code JavaScript, puis définit window.location
Ou top.location
Sur l'emplacement href
ne fonctionne pas pour moi.
Alors, imaginez que j’ai un élément avec l’identifiant "Foo" sur la page. Je veux créer une ancre similaire à:
<a href="#Foo" onclick="runMyFunction(); return false;">Do it!</a>
Lorsque cela est cliqué, je veux exécuter runMyFunction, puis passer à la page à #Foo
(Ne pas provoquer de rechargement - utiliser top.location
Provoquerait le rechargement de la page).
Suggestions? Je suis heureux d'utiliser jQuery s'il peut aider ici ...
Juste return true
au lieu?
La valeur renvoyée par le code onClick
détermine si l'action cliquée inhérente au lien est traitée ou non. Le renvoi de false
signifie qu'il n'est pas traité, mais si vous renvoyez true
puis le navigateur procédera au traitement après le retour de votre fonction et passera à l'ancre appropriée.
<a href="#Foo" onclick="return runMyFunction();">Do it!</a>
et
function runMyFunction() {
//code
return true;
}
De cette façon, vous aurez la fonction youf 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.
Si le lien ne change que l'emplacement si la fonction est exécutée avec succès, alors faites onclick="return runMyFunction();"
et vous renverriez true ou false dans la fonction.
Si vous souhaitez simplement exécuter la fonction et laisser ensuite la balise d'ancrage faire son travail, supprimez simplement le return false
déclaration.
En guise de remarque, vous devriez probablement utiliser un gestionnaire d'événements à la place, car JS en ligne n'est pas une façon très optimale de procéder.