Wann und warum return false
in JavaScript?
javascript
jquery
zsharp
quelle
quelle
event.preventDefault()
diese Funktionalität zu verwenden. Ich glaube, die Rückgabe von false ist veraltet und funktioniert nicht mehr immer.return false
ist das in der Methode, ändert dies etwas?Ich vermute, dass Sie sich auf die Tatsache beziehen, dass Sie oft eine "falsche Rückgabe" setzen müssen; Aussage in Ihren Event-Handlern, dh
Die 'return false;' In diesem Fall kann der Browser nicht zum aktuellen Speicherort springen, wie durch href = "#" angegeben. Stattdessen wird nur doSomeFunction () ausgeführt. Dies ist nützlich, wenn Sie Ankertags Ereignisse hinzufügen möchten, der Browser jedoch nicht bei jedem Klick zu jedem Anker auf und ab springen soll
quelle
Es wird verwendet, um die Ausbreitung des Ereignisses zu stoppen . Sie sehen, wenn Sie zwei Elemente mit einem Klickereignishandler haben (zum Beispiel)
Wenn Sie auf das innere Element (Element2) klicken, wird in beiden Elementen ein Klickereignis ausgelöst: 1 und 2. Es wird als "Ereignisblasen" bezeichnet. Wenn Sie das Ereignis nur in Element2 behandeln möchten, muss der Ereignishandler false zurückgeben, um die Ereignisausbreitung zu stoppen.
Ein weiteres Beispiel ist der Link-On-Click-Handler. Wenn Sie verhindern möchten, dass ein Linkformular funktioniert. Sie können einen Onclick-Handler hinzufügen und false zurückgeben. So verhindern Sie, dass das Ereignis an den Standardhandler weitergegeben wird.
quelle
false
von einem Ereignishandler zurückkehren, wird die mit einem Ereignis verknüpfte Standardaktion verhindert. Sie können dies auch über einen Aufrufevent.preventDefault()
oder eine Einstellungevent.returnValue = false
(IE) tun . Um zu verhindern, dass das Ereignis sprudelt, müssen Sie anrufenevent.stopPropagation()
oder einstellenevent.cancelBubble = true
(IE)Äh ... wie wäre es mit einer booleschen Funktion, um "nicht wahr" anzuzeigen?
quelle
Ich bin auch auf diese Seite gekommen, nachdem ich nach "js" gesucht habe, wenn ich "return false" verwenden soll. Unter den anderen Suchergebnissen befand sich eine Seite, die ich auf Chris Coyiers CSS-Tricks-Website weitaus nützlicher und unkomplizierter fand: Der Unterschied zwischen 'return false;' und 'e.preventDefault ();'
Der Kern seines Artikels ist:
obwohl ich trotzdem empfehlen würde, den ganzen Artikel zu lesen.
Update: Nachdem die Vorteile der Verwendung von return false diskutiert wurden; als Ersatz für e.preventDefault (); & e.stopPropagation (); Einer meiner Mitarbeiter wies darauf hin, dass return false auch die Ausführung von Rückrufen stoppt, wie in diesem Artikel beschrieben: jQuery-Ereignisse: Stop (Mis) Using Return False .
quelle
function() { return false; }
GLEICHfunction(e) { e.preventDefault(); e.stopPropagation(); }
, aber in rein js, es ist nicht die gleiche,function() { return false; }
GLEICHfunction(e) { e.preventDefault(); }
tatsächlich. Es stoppt nicht die Ausbreitung.Wenn Sie die
each
Funktion von jQuery verwenden, hat die Rückgabe von true oder false eine Bedeutung. Siehe das Dokumentquelle
Ich denke, eine bessere Frage ist, warum Sie in einem Fall, in dem Sie einen booleschen Satz von Rückgabewerten auswerten, NICHT true / false verwenden würden . Ich meine, Sie könnten wahrscheinlich true / null, true / -1, andere Verschiedenes haben. Javascript "falsche" Werte zu ersetzen, aber warum sollten Sie das tun?
quelle
Wenn Sie Javascript-Code von einem Ankertag aus auslösen möchten, sollte der Onclick-Handler anstelle des Javascript: Pseudo-Protokolls verwendet werden. Der im Onclick-Handler ausgeführte Javascript-Code muss true oder false (oder einen Ausdruck, der auf true oder false ausgewertet wird) an das Tag selbst zurückgeben. Wenn er true zurückgibt, wird die HREF des Ankers wie ein normaler Link verfolgt. Wenn false zurückgegeben wird, wird der HREF ignoriert. Deshalb "return false"; wird häufig am Ende des Codes in einem Onclick-Handler eingefügt.
quelle
Sie verwenden return false, um zu verhindern, dass etwas passiert. Wenn also ein Skript beim Senden ausgeführt wird, verhindert die Rückgabe von false, dass das Senden funktioniert.
quelle
Wenn eine return-Anweisung in einer Funktion aufgerufen wird, wird die Ausführung dieser Funktion gestoppt. Wenn angegeben, wird ein bestimmter Wert an den Funktionsaufrufer zurückgegeben. Wenn der Ausdruck weggelassen wird, wird stattdessen undefined zurückgegeben.
Weitere Informationen finden Sie auf der MDN-Dokumentenseite für
return
.quelle
Geben Sie false nur mit zurück, wenn Sie eine abgenutzte Funktion haben (durch einen Test) oder wenn Sie eine Funktion stoppen möchten. Verwenden Sie beispielsweise return false am Ende "onsubmit".
quelle
Auch dieser kurze und interessante Link zum Durchlesen https://www.w3schools.com/jsref/event_preventdefault.asp
Definition und Verwendung
Die Methode prepareDefault () bricht das Ereignis ab, wenn es abgebrochen werden kann. Dies bedeutet, dass die zum Ereignis gehörende Standardaktion nicht ausgeführt wird.
Dies kann beispielsweise nützlich sein, wenn:
Hinweis: Nicht alle Ereignisse können abgebrochen werden. Verwenden Sie die Eigenschaft cancelable, um herauszufinden, ob ein Ereignis stornierbar ist.
Hinweis: Die Methode präventDefault () verhindert nicht die weitere Weitergabe eines Ereignisses durch das DOM. Verwenden Sie dazu die stopPropagation () -Methode.
quelle