Une fois que j'ai déclenché un evt.preventDefault()
, comment puis-je reprendre les actions par défaut?
185
Une fois que j'ai déclenché un evt.preventDefault()
, comment puis-je reprendre les actions par défaut?
Réponses:
Selon les commentaires de @Prescott, le contraire de:
Pourrait être:
Cela équivaut essentiellement à «faire par défaut» , puisque nous ne l'empêchons plus.
Sinon, je suis enclin à vous indiquer les réponses fournies par d'autres commentaires et réponses:
Comment dissocier un écouteur qui appelle event.preventDefault () (en utilisant jQuery)?
Comment réactiver event.preventDefault?
Notez que le second a été accepté avec un exemple de solution, donné par redsquare (posté ici pour une solution directe au cas où cela ne serait pas fermé comme duplicata):
la source
et son contraire
à votre santé!
la source
return true
: rien.Pour traiter une commande avant de continuer un lien à partir d'un
click
événement dans jQuery:Par exemple:
<a href="http://google.com/" class="myevent">Click me</a>
Empêcher et poursuivre avec jQuery:
Ou courez simplement
window.location = this.href;
après lepreventDefault();
la source
J'ai dû retarder la soumission d'un formulaire dans jQuery afin d'exécuter un appel asynchrone. Voici le code simplifié ...
la source
D'ACCORD ! cela fonctionne pour l'événement de clic:
la source
et son opposé (standard):
source: https://developer.mozilla.org/en-US/docs/Web/API/Event/returnValue
la source
Je suggérerais le modèle suivant:
... sauf si je manque quelque chose.
http://jsfiddle.net/DdvcX/
la source
Il n'y a pas de méthode opposée
event.preventDefault()
pour comprendre pourquoi vous devez d'abord regarder ce qui seevent.preventDefault()
passe lorsque vous l'appelez.Sous le capot, la fonctionnalité de preventDefault appelle essentiellement un retour false qui arrête toute exécution ultérieure. Si vous connaissez les anciennes méthodes de Javascript, il était autrefois à la mode d'utiliser return false pour annuler des événements sur des éléments tels que les soumissions de formulaires et les boutons utilisant return true (avant même que jQuery ne soit là).
Comme vous l'avez probablement déjà établi sur la base de l'explication simple ci-dessus: le contraire de
event.preventDefault()
n'est rien. Vous n'empêchez simplement pas l'événement, par défaut le navigateur autorisera l'événement si vous ne l'empêchez pas.Voir ci-dessous pour une explication:
Dans le code ci-dessus, vous remarquerez que nous vérifions si allowSubmit est faux. Cela signifie que nous empêcherons notre formulaire de se soumettre en utilisant
event.preventDefault
, puis nous ferons une logique de validation et si nous sommes satisfaits, définissez allowSubmit sur true.C'est vraiment la seule méthode efficace pour faire le contraire de
event.preventDefault()
- vous pouvez également essayer de supprimer des événements qui aboutiraient essentiellement au même résultat.la source
Voici quelque chose d'utile ...
Tout d'abord, nous cliquons sur le lien, exécutons du code et effectuons l'action par défaut. Cela sera possible en utilisant event.currentTarget Jetez un œil. Ici, nous allons essayer d'accéder à Google sur un nouvel onglet, mais avant de devoir exécuter du code.
la source
Voici ce que j'ai utilisé pour le définir:
Et pour l'annuler:
la source
Aucune des solutions ne m'a aidé ici et je l'ai fait pour résoudre ma situation.
Et la fonction
clickEvent()
,la source
Je suppose que le «contraire» serait de simuler un événement. Vous pourriez utiliser
.createEvent()
À l'exemple de Mozilla:
Réf: document.createEvent
jQuery
.trigger()
vous permet de déclencher des événements sur les éléments - parfois utile.la source
jquery on () pourrait être une autre solution à cela. escpacialement en ce qui concerne l'utilisation des espaces de noms .
jquery on () est simplement la manière courante de lier les événements (au lieu de bind ()). off () est de les dissocier. et lorsque vous utilisez un espace de noms, vous pouvez ajouter et supprimer plusieurs événements différents.
maintenant, avec l'utilisation de l'espace de noms, vous pouvez ajouter plusieurs de ces événements et être en mesure de les supprimer, en fonction de vos besoins. Bien que la soumission ne soit pas le meilleur exemple, cela peut s'avérer utile en un clic ou en appuyant sur une touche ou autre.
la source
Ce n'est pas une réponse directe à la question mais cela peut aider quelqu'un. Mon point est que vous appelez seulement preventDefault () en fonction de certaines conditions car il ne sert à rien d'avoir un événement si vous appelez preventDefault () pour tous les cas. Donc, avoir des conditions if et appeler preventDefault () uniquement lorsque la / les condition / s satisfaite fonctionnera la fonction de la manière habituelle pour les autres cas.
});
la source
vous pouvez l'utiliser après la méthode "preventDefault"
// Ici evt.target renvoie l'événement par défaut (par exemple: defult url etc)
// Ici, nous sauvegardons l'événement par défaut.
la source
Vous pouvez toujours utiliser ceci joint à un événement de clic dans votre script:
exemple d'utilisation:
la source
ce code a fonctionné pour moi pour ré-instancier l'événement après avoir utilisé:
la source
J'ai utilisé le code suivant. Ça fonctionne bien pour moi.
la source
event.preventDefault()
;