Coi link scritti in quel modo (attribute href="#" piu' onclick event) devi stoppare l'event propagation altrimenti quel comportamento e' normale in alcuni browsers, i.e. ti esegue la funzione ma ti carica anche la pagina con il fragment identifier vuoto. L'alternativa e' come hai gia' visto usare uno url del tipo "javascript:...".