Kiedy i dlaczego return false
w JavaScript?
javascript
jquery
zsharp
źródło
źródło
event.preventDefault()
tej funkcji. Uważam, że zwracanie fałszu jest przestarzałe i nie zawsze już działa.return false
jest w metodzie, czy to coś zmienia?Domyślam się, że masz na myśli fakt, że często musisz wstawić „return false”; instrukcja w programach obsługi zdarzeń, tj
Polecenie „return false”; w tym przypadku zatrzymuje przeglądarkę przed skokiem do bieżącej lokalizacji, na co wskazuje href = "#" - zamiast tego wykonywana jest tylko funkcja doSomeFunction (). Jest to przydatne, gdy chcesz dodać zdarzenia do tagów kotwicy, ale nie chcesz, aby przeglądarka przeskakiwała w górę iw dół do każdej kotwicy po każdym kliknięciu
źródło
Służy do zatrzymania propagacji zdarzenia . Widzisz, gdy masz dwa elementy, oba z obsługą zdarzenia kliknięcia (na przykład)
Kliknięcie elementu wewnętrznego (element2) wywoła zdarzenie kliknięcia w obu elementach: 1 i 2. Nazywa się to „propagacją zdarzeń”. Jeśli chcesz obsłużyć zdarzenie tylko w elemencie 2, program obsługi zdarzenia musi zwrócić wartość false, aby zatrzymać propagację zdarzenia.
Innym przykładem będzie program obsługi linków onclick. Jeśli chcesz zatrzymać działanie formularza linku. Możesz dodać moduł obsługi onclick i zwrócić false. Aby zatrzymać propagację zdarzenia do domyślnej procedury obsługi.
źródło
false
z procedury obsługi zdarzenia uniemożliwi wykonanie domyślnej akcji związanej ze zdarzeniem; możesz to również zrobić, dzwoniącevent.preventDefault()
lub ustawiającevent.returnValue = false
(IE); aby zapobiec bulgotaniu wydarzenia, musisz zadzwonićevent.stopPropagation()
lub ustawićevent.cancelBubble = true
(IE)Eee ... co powiesz na funkcję logiczną, która wskaże „nieprawda”?
źródło
Trafiłem też na tę stronę po wyszukaniu „js, kiedy użyć 'return false'; Wśród innych wyników wyszukiwania była strona, którą uważam za znacznie bardziej użyteczną i prostszą, w witrynie CSS-Tricks Chrisa Coyiera: Różnica między „return false”; i 'e.preventDefault ();'
Istota jego artykułu brzmi:
chociaż nadal polecałbym przeczytanie całego artykułu.
Aktualizacja: Po omówieniu zalet używania funkcji return false; jako zamiennik dla e.preventDefault (); & e.stopPropagation (); jeden z moich współpracowników wskazał, że return false zatrzymuje również wykonywanie wywołań zwrotnych, jak opisano w tym artykule: jQuery Events: Stop (Mis) Using Return False .
źródło
function() { return false; }
jest równafunction(e) { e.preventDefault(); e.stopPropagation(); }
, ale w czystym js, to nie to samo,function() { return false; }
JEST RÓWNAfunction(e) { e.preventDefault(); }
faktycznie. To nie zatrzymać rozprzestrzenianie.Podczas korzystania z
each
funkcji jQuery zwracanie wartości true lub false ma znaczenie. Zobacz docźródło
Myślę, że lepszym pytaniem jest, dlaczego w przypadku, gdy oceniasz boolowski zbiór wartości zwracanych, czy NIE użyłbyś prawda / fałsz ? To znaczy, prawdopodobnie mógłbyś mieć true / null, true / -1, inne różne. Wartości „fałszywe” JavaScript do zastąpienia, ale dlaczego miałbyś to zrobić?
źródło
Jeśli chcesz wyzwolić kod javascript ze znacznika kotwicy, użyj funkcji obsługi onclick zamiast javascript: pseudo-protokół. Kod javascript, który działa w ramach procedury obsługi onclick, musi zwracać wartość true lub false (lub wyrażenie, które daje wartość true lub false) z powrotem do samego tagu - jeśli zwróci wartość true, to po HREF kotwicy będzie śledzony jak zwykły link. Jeśli zwróci fałsz, to HREF zostanie zignorowany. Dlatego właśnie „zwraca fałsz”; jest często dołączany na końcu kodu w module obsługi onclick.
źródło
Używasz funkcji return false, aby zapobiec wystąpieniu zdarzenia. Więc jeśli masz skrypt działający podczas przesyłania, to zwrócenie false uniemożliwi działanie przesyłania.
źródło
Gdy w funkcji wywoływana jest instrukcja return, wykonywanie tej funkcji jest zatrzymywane. Jeśli jest określony, dana wartość jest zwracana do obiektu wywołującego funkcję. Jeśli wyrażenie zostanie pominięte, zamiast tego zwracany jest undefined.
Aby uzyskać więcej informacji, zajrzyj na stronę z dokumentacją MDN dotyczącą
return
.źródło
zwróć false używając tylko jeśli masz jakieś działanie w funkcji (przez jakiś test) lub chcesz zatrzymać jakąś funkcję, na przykład użyj return false na końcu "onsubmit"
źródło
Również ten krótki i interesujący link do przeczytania https://www.w3schools.com/jsref/event_preventdefault.asp
Definicja i użycie
Metoda prevDefault () anuluje zdarzenie, jeśli można je anulować, co oznacza, że domyślna akcja należąca do zdarzenia nie zostanie wykonana.
Na przykład może to być przydatne, gdy:
Uwaga: nie wszystkie wydarzenia można anulować. Użyj właściwości cancellable, aby dowiedzieć się, czy wydarzenie można anulować.
Uwaga: Metoda prevDefault () nie zapobiega dalszemu propagowaniu zdarzenia przez DOM. W tym celu użyj metody stopPropagation ().
źródło