J'ai une ancre avec les deux HREF
et les ONCLICK
attributs définis. Si vous avez cliqué et que Javascript est activé, je veux qu'il s'exécute et ignore uniquement . De même, si Javascript est désactivé ou non pris en charge, je veux qu'il suive l' URL et l'ignore . Voici un exemple de ce que je fais, qui exécuterait le JS et suivrait le lien simultanément (généralement le JS est exécuté, puis la page change):ONCLICK
HREF
HREF
ONCLICK
<A HREF="http://example.com/no-js-login" ONCLICK="yes_js_login()">Log in</A>
quelle est la meilleure façon de procéder?
J'espère une réponse Javascript, mais j'accepterai n'importe quelle méthode tant qu'elle fonctionne, surtout si cela peut être fait avec PHP. J'ai déjà lu " un lien href exécute et redirige la page avant que la fonction javascript onclick ne puisse terminer ", mais cela ne fait que retarder HREF
, mais ne le désactive pas complètement. Je recherche aussi quelque chose de beaucoup plus simple.
Réponses:
Vous pouvez utiliser la première solution non modifiée, si vous mettez return en premier dans l'
onclick
attribut:Exemple: https://jsfiddle.net/FXkgV/289/
la source
Si vous retournez false, cela devrait empêcher l'action par défaut (aller à href).
Modifier: Désolé, cela ne semble pas fonctionner, vous pouvez effectuer les opérations suivantes à la place:
la source
onclick="return yes_js_login();"
avecyes_js_login
retourfalse
event.stopImmediatePropagation()
Désactivez simplement le comportement par défaut du navigateur en utilisant
preventDefault
et transmettez leevent
dans votre HTML.<a href=/foo onclick= yes_js_login(event)>Lorem ipsum</a>
la source
avec jQuery:
avec JavaScript
Vous attribuez une classe
.ignore-click
à autant d'éléments que vous aimez et les clics sur ces éléments seront ignorésla source
.btn-loading
est ajoutée au lien cliqué, puis en cas de succès, une coche (en cas d'erreur un X) remplace l'animation de chargement. Je ne veux pas que le bouton puisse être cliqué à nouveau dans certains cas (pour le succès et l'erreur), en utilisant cela, je peux simplement$(elemnent).addClass('disabled')
et facilement obtenir la fonctionnalité que je recherchais d'une manière élégante!Vous pouvez utiliser ce code simple:
la source
C'est plus simple si vous passez un paramètre d'événement comme celui-ci:
la source
Cela pourrait aider. Aucun JQuery nécessaire
Ce code effectue les opérations suivantes: Transmettez le lien relatif à Google Docs Viewer
this.href
Donc, dans votre cas, cela pourrait fonctionner:
la source
J'ai résolu une situation où j'avais besoin d'un modèle pour l'élément qui gérerait alternativement une URL régulière ou un appel javascript, où la fonction js a besoin d'une référence à l'élément appelant. En javascript, "this" fonctionne comme une auto-référence uniquement dans le contexte d'un élément de formulaire, par exemple un bouton. Je ne voulais pas de bouton, juste l'apparence d'un lien régulier.
Exemples:
Les attributs href et onClick ont les mêmes valeurs, sauf que j'ajoute "return false" sur onClick lorsqu'il s'agit d'un appel javascript. Avoir "return false" dans la fonction appelée ne fonctionnait pas.
la source
HREF
?Cela a fonctionné pour moi:
la source
Dans mon cas, j'avais une condition lorsque l'utilisateur cliquait sur l'élément "a". La condition était:
Si une autre section contenait plus de dix éléments, l'utilisateur ne devrait pas être redirigé vers une autre page.
Si une autre section contient moins de dix éléments, l'utilisateur doit être redirigé vers une autre page.
La fonctionnalité des éléments "a" dépend de l'autre composant. Le code dans l'événement de clic est le suivant:
la source