J'ai des liens comme celui-ci:
<a href="#" onclick="myfunc({a:1, b:'hi'})" />click</a>
<a href="#" onclick="myfunc({a:3, b:'jo'})" />click</a>
Et je voudrais faire un preventDefault()
dedans myfunc()
, car un #
sera ajouté dans la barre d'adresse en cliquant sur le lien (sans faire return false;
ou href='javascript:void(0);'
)
Est-ce possible? Puis-je avoir l'événement à l'intérieurmyfunc()
return false
arrête uniquement la propagation dans jQuery.Réponses:
Je crois que vous pouvez passer
event
dans la fonction en ligne qui sera l'event
objet de l'événement déclenché dans les navigateurs compatibles W3C (c'est-à-dire que les anciennes versions d'IE nécessiteront toujours une détection à l'intérieur de votre fonction de gestionnaire d'événementswindow.event
).Un exemple rapide .
event
passé dans leonclick
gestionnaire en quelque chose d'autre commee
, cliquez sur Exécuter, puis notez que la redirection a lieu après l'alerte (le volet de résultats devient blanc, démontrant une redirection).la source
myfunc(event, {a:123, b:"asdas"})
function myfunc(o, e) {...}
alors il peut être appelé commemyfunc({a:1, b:'hi'}, event)
.function sayHi() { event.preventDefault(); alert("hi"); }
La solution la plus simple est simplement:
C'est en fait un bon moyen de contourner le cache pour les documents avec une solution de secours pour les navigateurs sans JS (pas de contournement de cache si pas de JS)
Si JavaScript est activé, il ouvre le PDF avec une chaîne de requête de contournement du cache, sinon il ouvre simplement le PDF.
la source
Essaye ça:
la source
$("body").on("click","a",function(e) { e.preventDefault() });
. Dans les deux cas, aucune des deux solutions n'aura un impact significatif sur les performances.la source
return false
n'est pas recommandé car cela empêchera également tous les autres gestionnaires d'événements de cet élément de s'exécuter et empêchera l'événement de remonter vers les éléments supérieurs.Ajoutez une classe unique aux liens et un javascript qui empêche la valeur par défaut sur les liens avec cette classe:
la source
Ne pouvez-vous pas simplement supprimer l'attribut href de la balise a?
la source
Je pense que lorsque nous utilisons onClick, nous voulons faire quelque chose de différent de celui par défaut. Donc, pour tous vos liens avec onClick:
la source
Facile!
la source
Vous pouvez accéder à l'événement à partir d'un clic comme ceci:
et à votre fonction javascript, mon conseil est d'ajouter cette déclaration de première ligne comme:
puis utilisez partout e comme variable d'événement
la source
e.preventDefault (); depuis https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault
Ou faites renvoyer false de votre méthode.
la source
Sans aucune bibliothèque JS ou jQuery. Pour ouvrir une jolie fenêtre popup si possible. Échoue en toute sécurité à l'ouverture du lien normal.
Et la fonction d'assistance:
la source