In quasi tutti gli script esempi/modelli posso trovare, vedo event.preventDefault();
al termine della funzione, in questo modo:event.preventDefault() sempre poco prima della fine delle funzioni
$('.navbar-nav li a').bind('click', function(event) {
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset().top
}, 1500, 'easeInOutExpo');
event.preventDefault();
});
Dal mio punto di vista, l'idea è "arrestare immediatamente il comportamento di default quindi fare quello che dobbiamo fare", in questo modo:
$('.navbar-nav li a').bind('click', function(event) {
event.preventDefault();
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset().top
}, 1500, 'easeInOutExpo');
});
allora, cosa mi manca?
'interrompere immediatamente il default behavior' eventi sono messi in coda quindi questo non fa differenza per metterlo in cima o in fondo al gestore. Ma vedi la risposta di TrueBlueAussie, di solito è più comodo metterla in fondo se per qualche motivo vuoi fermare anche la propagazione, usando il metodo stenografico 'return false;'. Detto questo, lo metto sempre in cima solo per la leggibilità, ma questa è la mia opinione personale –