event.preventDefault() vs return false: differenze e similitudini

di Lorenzo Neri

Che differenze ci sono tra event.preventDefault() e return false? Che similitudini troviamo fra uno e l’altro? In questo articolo parleremo di queste due modalità all’interno della gestione eventi in JavaScript.

Ciao mi chiamo Lorenzo Neri e sono un informatico: realizzo contenuti per aiutare le persone a padroneggiare l’arte del nuovo millennio, ovvero l’informatica!

All’interno di un evento per evitare che altri gestori di evento, ovvero i famosi event handler, vengano eseguiti quando un particolare evento viene eseguito, possiamo usare due tecniche.

La prima, è l’uso dell’event.prevendDefault, la seconda la return false.

Facciamo un esempio completo:

$('bottone').click(function (e) {
    // gestione del click
    e.preventDefault();
});
$('bottone').click(function (e) {
    // gestione del click
    return false;
});

Insomma sembrerebbe uguale la faccenda, per di più con la return false le cose sono anche più leggibili.

Ma c’è davvero una differenza tra event.preventDefault() e return false in questo caso?

Tutta una visione jQuerystica

Lo so lo so: evito di usare il tecnichese nei miei articoli, di fatto quella parola me la sono inventata sul momento 😀

C’è di mezzo jQuery in questa faccenda.

Tramite l’uso di return false, all’interno di un oggetto jQuery (nel nostro caso l’eventHandler che abbiamo visto poco fa), non abbiamo niente di diverso rispetto ad usare preventDefault o addirittura e.stopPropagation.

Bisogna fare una premessa riguardo a preventDefault però.

La prima differenza che troviamo è proprio qua: naturalmente preventDefault eviterà che l’evento venga eseguito, mentre stopPropagation evita che l’evento subisca un bubbling up di cui ti lascio le referenze al link precedente.

La seconda differenza, la più sostanziale è invece questa.

return false fa entrambe le cose dette in precedenza, ma condensate in due parole molto più leggibili da un punto di vista umano.

Continua a scoprire di più con questi articoli!

Lascia un commento


The reCAPTCHA verification period has expired. Please reload the page.

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più