evt.preventDefault()
Wie kann ich die Standardaktionen wieder aufnehmen, nachdem ich eine ausgelöst habe ?
javascript
jquery
preventdefault
Bryan
quelle
quelle
Antworten:
Laut Kommentar von @Prescott ist das Gegenteil von:
Könnte sein:
Im Wesentlichen gleichbedeutend mit "Standard ausführen" , da wir dies nicht mehr verhindern.
Ansonsten bin ich geneigt, Sie auf die Antworten anderer Kommentare und Antworten hinzuweisen:
Wie kann ich die Bindung eines Listeners aufheben, der event.preventDefault () aufruft (mit jQuery)?
Wie kann ich event.preventDefault wieder aktivieren?
Beachten Sie, dass die zweite mit einer Beispiellösung von redsquare akzeptiert wurde (hier für eine direkte Lösung angegeben, falls diese nicht als Duplikat geschlossen wird):
quelle
und sein Gegenteil
Prost!
quelle
return true
: nichts auslassen .So verarbeiten Sie einen Befehl, bevor Sie einen Link von einem
click
Ereignis in jQuery fortsetzen:Z.B:
<a href="http://google.com/" class="myevent">Click me</a>
Verhindern und verfolgen Sie jQuery:
Oder einfach
window.location = this.href;
hinter dem herlaufenpreventDefault();
quelle
Ich musste eine Formularübermittlung in jQuery verzögern, um einen asynchronen Aufruf auszuführen. Hier ist der vereinfachte Code ...
quelle
OK ! Es funktioniert für das Klickereignis:
quelle
und sein Gegenteil (Standard):
Quelle: https://developer.mozilla.org/en-US/docs/Web/API/Event/returnValue
quelle
Ich würde folgendes Muster vorschlagen:
... es sei denn, ich vermisse etwas.
http://jsfiddle.net/DdvcX/
quelle
Es gibt keine entgegengesetzte Methode, um
event.preventDefault()
zu verstehen, warum Sie zuerst untersuchen müssen, wasevent.preventDefault()
passiert, wenn Sie es aufrufen.Unter der Haube ruft die Funktionalität für PreventDefault im Wesentlichen eine Rückgabe false auf, die jede weitere Ausführung anhält. Wenn Sie mit den alten Methoden von Javascript vertraut sind, war es früher üblich, return false zum Abbrechen von Ereignissen für Dinge wie Formularübermittlungen und Schaltflächen mit return true zu verwenden (bevor es jQuery überhaupt gab).
Wie Sie wahrscheinlich bereits anhand der obigen einfachen Erklärung herausgefunden haben: Das Gegenteil von
event.preventDefault()
ist nichts. Sie verhindern das Ereignis einfach nicht. Standardmäßig lässt der Browser das Ereignis zu, wenn Sie es nicht verhindern.Eine Erklärung finden Sie unten:
Im obigen Code werden Sie feststellen, dass wir prüfen, ob allowSubmit falsch ist. Dies bedeutet, dass wir verhindern, dass unser Formular mit
event.preventDefault
gesendet wird, und dann eine Validierungslogik durchführen. Wenn wir zufrieden sind, setzen Sie allowSubmit auf true.Dies ist wirklich die einzig wirksame Methode, um das Gegenteil von zu tun.
event.preventDefault()
Sie können auch versuchen, Ereignisse zu entfernen, die im Wesentlichen dasselbe bewirken würden.quelle
Hier ist etwas Nützliches ...
Zuerst klicken wir auf den Link, führen Code aus und führen dann die Standardaktion aus. Dies wird mit event.currentTarget möglich sein . Hier werden wir versuchen, über einen neuen Tab auf Google zuzugreifen, aber bevor wir Code ausführen müssen.
quelle
Dies ist, was ich verwendet habe, um es einzustellen:
Und um es rückgängig zu machen:
quelle
Keine der Lösungen hat mir hier geholfen und ich habe dies getan, um meine Situation zu lösen.
Und die Funktion
clickEvent()
,quelle
Ich nehme an, das "Gegenteil" wäre, ein Ereignis zu simulieren. Du könntest benutzen
.createEvent()
Nach Mozillas Beispiel:
Ref: document.createEvent
Mit jQuery
.trigger()
können Sie Ereignisse für Elemente auslösen - manchmal nützlich.quelle
jquery on () könnte eine andere Lösung dafür sein. vor allem, wenn es um die Verwendung von Namespaces geht .
jquery on () ist nur die aktuelle Methode zum Binden von Ereignissen (anstelle von bind ()). off () soll diese lösen. Wenn Sie einen Namespace verwenden, können Sie mehrere verschiedene Ereignisse hinzufügen und entfernen.
Mit dem Namespace können Sie jetzt mehrere dieser Ereignisse hinzufügen und diese je nach Ihren Anforderungen entfernen. Während das Senden möglicherweise nicht das beste Beispiel ist, kann dies bei einem Klick oder Tastendruck oder was auch immer nützlich sein.
quelle
Dies ist keine direkte Antwort auf die Frage, kann aber jemandem helfen. Mein Punkt ist, dass Sie PreventDefault () nur unter bestimmten Bedingungen aufrufen, da es keinen Sinn macht, ein Ereignis zu haben, wenn Sie PreventDefault () für alle Fälle aufrufen. Wenn Sie also if-Bedingungen haben und präventDefault () nur aufrufen, wenn die Bedingung (en) erfüllt sind, funktioniert die Funktion in den anderen Fällen auf die übliche Weise.
});
quelle
Sie können dies nach der Methode "prepareDefault" verwenden
// Hier gibt evt.target das Standardereignis zurück (zB: defult url etc)
// Hier speichern wir das Standardereignis.
quelle
Sie können dies immer an ein Klickereignis in Ihrem Skript anhängen:
Anwendungsbeispiel ist:
quelle
Dieser Code funktionierte für mich, um das Ereignis erneut zu instanziieren, nachdem ich Folgendes verwendet hatte:
quelle
Ich habe den folgenden Code verwendet. Es funktioniert gut für mich.
quelle
event.preventDefault()
;