Risposte:
Spesso, i gestori di eventi, come ad esempio onsubmit
, restituire false sono un modo per dire all'evento di non effettivamente sparare. Ad esempio, nel onsubmit
caso ciò significherebbe che il modulo non è stato inviato.
event.preventDefault()
per questa funzionalità. Credo che restituire false sia deprecato e non sempre funziona più.
return false
è nel metodo, questo cambia qualcosa?
Immagino che ti riferisci al fatto che spesso devi mettere un "ritorno falso"; dichiarazione nei gestori di eventi, ad es
<a href="#" onclick="doSomeFunction(); return false;">...
Il 'return false;' in questo caso impedisce al browser di saltare alla posizione corrente, come indicato da href = "#" - invece, viene eseguito solo doSomeFunction (). È utile quando si desidera aggiungere eventi ai tag di ancoraggio, ma non si desidera che il browser salti su e giù su ciascun ancoraggio ad ogni clic
Viene utilizzato per interrompere la propagazione dell'evento . Si vede quando si hanno due elementi entrambi con un gestore eventi click (ad esempio)
-----------------------------------
| element1 |
| ------------------------- |
| |element2 | |
| ------------------------- |
| |
-----------------------------------
Se si fa clic sull'elemento interno (element2), si attiverà un evento click in entrambi gli elementi: 1 e 2. Si chiama "Evento bubbling". Se si desidera gestire l'evento solo in element2, il gestore eventi deve restituire false per interrompere la propagazione dell'evento.
Un altro esempio sarà il gestore del collegamento onclick. Se si desidera interrompere il funzionamento di un modulo di collegamento. È possibile aggiungere un gestore onclick e restituire false. Per impedire la propagazione dell'evento al gestore predefinito.
false
da un gestore di eventi impedirà l'azione predefinita associata a un evento; potresti anche farlo tramite chiamata event.preventDefault()
o impostazione event.returnValue = false
(IE); per fermare il gorgoglio dell'evento, dovrai chiamare event.stopPropagation()
o impostare event.cancelBubble = true
(IE)
Ehm ... che ne dici di una funzione booleana per indicare "non vero"?
Sono venuto anche a questa pagina dopo aver cercato "js, quando usare" return false; " Tra gli altri risultati della ricerca c'era una pagina che ho trovato molto più utile e semplice, sul sito CSS-Tricks di Chris Coyier: La differenza tra 'return false;' e 'e.preventDefault ();'
L'essenza del suo articolo è:
function () {return false; }
// È UGUALE A
function (e) {e.preventDefault (); e.stopPropagation (); }
anche se consiglierei comunque di leggere l'intero articolo.
Aggiornamento: dopo aver discusso i meriti dell'utilizzo di return false; in sostituzione di e.preventDefault (); & e.stopPropagation (); uno dei miei colleghi ha sottolineato che return false interrompe anche l'esecuzione della richiamata, come indicato in questo articolo: jQuery Events: Stop (Mis) utilizzando Return False .
function() { return false; }
È function(e) { e.preventDefault(); e.stopPropagation(); }
uguale a, ma in puro js, non è lo stesso, function() { return false; }
è uguale a function(e) { e.preventDefault(); }
effettivamente. E non si ferma la propagazione.
Penso che una domanda migliore sia: perché in un caso in cui stai valutando un set booleano di valori di ritorno, NON useresti true / false ? Voglio dire, probabilmente potresti avere true / null, true / -1, altri misc. Javascript "falsa" i valori da sostituire, ma perché dovresti farlo?
Quando si desidera attivare il codice javascript da un tag anchor, è necessario utilizzare il gestore onclick anziché il javascript: pseudo-protocollo. Il codice javascript che viene eseguito all'interno del gestore onclick deve restituire vero o falso (o un'espressione che valuta vero o falso) al tag stesso - se restituisce vero, l'HREF dell'ancora verrà seguito come un normale collegamento. Se restituisce false, l'HREF verrà ignorato. Questo è il motivo per cui "return false;" è spesso incluso alla fine del codice all'interno di un gestore onclick.
Quando viene richiamata un'istruzione return in una funzione, l'esecuzione di questa funzione viene interrotta. Se specificato, un determinato valore viene restituito al chiamante della funzione. Se l'espressione viene omessa, viene invece restituito undefined.
Per ulteriori informazioni, consulta la pagina dei documenti MDN perreturn
.
restituisce false usando solo se hai qualche funzione indossata (da alcuni test) o vuoi fermare una funzione, ad esempio usa return false alla fine "onsubmit"
Inoltre, questo breve e interessante link da leggere attraverso https://www.w3schools.com/jsref/event_preventdefault.asp
Definizione e utilizzo
Il metodo preventDefault () annulla l'evento se è annullabile, il che significa che l'azione predefinita che appartiene all'evento non si verificherà.
Ad esempio, questo può essere utile quando:
Clicking on a "Submit" button, prevent it from submitting a form
Clicking on a link, prevent the link from following the URL
Nota: non tutti gli eventi sono cancellabili. Utilizzare la proprietà annullabile per scoprire se un evento è annullabile.
Nota: il metodo preventDefault () non impedisce l'ulteriore propagazione di un evento attraverso il DOM. Utilizzare il metodo stopPropagation () per gestire questo.