2 6 Stimmen

jQuery: Unterschied zwischen "return false" und "event.preventDefault()"

Info von Progger99 | 30.05.2012 um 12:36 Uhr

In JavaScript jQuery Code, scheinen manche ein "return false" und ein "event.preventDefault()" synonym zu benutzen. Was aber ist der genaue Unterschied zwischen diesen beiden Lines of Code?

Ein Beispiel

Wir wollen uns zunächst ein Beispiel mit "return false" ansehen:

$("a").click(function() {
    return false;
});

Und hier ein Beispiel mit event.preventDefault():

$("a").click(function(event) {
    event.preventDefault();
});

Beide Beispiele sorgen dafür, dass die eigentliche Aktion (Klick auf ein a-Element ruft den entsprechenden Link auf) unterdrückt wird. Was ist aber der Unterschied?

Der Unterschied

Der Unterschied darin liegt, dass ein "return false" weiter reichende Konsequenzen hat, als ein preventDefault(). Ein preventDefault() sorgt lediglich dafür, dass die Standardaktion nicht weiter ausgeführt, ein return false in jQuery dagegen sorgt auch dafür, dass ein stopPropagation() ausgeführt wird. Das bedeutet, dass eine ausgeführte Aktion wie ein Klick auf ein Element nicht an die darunter liegenden Elemente weiter gegeben wird.

Daher ist ein:

function() {
    return false;
}

Dasselbe wie:

function(event) {
    event.preventDefault();
    event.stopPropagation();
}

Allerdings nur in jQuery! Innerhalb von JavaScript in normalen nicht-jQuery Event-Handlern hat "return false" nicht diese Wirkung und auch nach einem "return false" wird die Aktion dort trotzdem weitergegeben.

AntwortenPositivNegativ

Über den Autor

Avatar AutorDer Autor hat keine Kurzbeschreibung seines Profils angegeben.
Profil anzeigen | Nachricht

 

Ähnliche Themen

Wichtiger Hinweis

Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.