Way back in the day, I use to always set up my event triggering anchor tags a certain way to prevent their default behaviour of having to click-through to a URL or named anchor:

<a href="javascript:void(0)" class="trigger">Trigger</a>

Usually, a more simple approach was to use a simple hash:

<a href="#" class="trigger">Trigger</a>

That’s the way I should’ve been doing it, but I really hated how it always made the browser window jump to the top.

Solving that wasn’t too complicated. It just took a bit of jQuery.

<script type="text/javascript">
/* <![CDATA[ */
( function( $ ) {
   $( 'a[href="#"]' ).click( function(e) {
      e.preventDefault();
   } );
} )( jQuery );
/* ]]> */
</script>

With that code in place, the browser no longer jumps to the top when using a hashed anchor tag.