Ссылки, как известно, не всегда нужно делать именно ссылками, иногда нужно чтобы они выполняли роли кнопок - чтобы по событию на клик отрабатывал нужный скрипт. В таких случаях, понятное дело, нужно, чтобы по клику на ссылку страница не перегружалась. И делают это обычно через жопу, а именно как:
<a href="#" onclick="return someScript(this);" >Ссылка</a>
И вроде бы все соответствует тому, что нужно - ссылка не нажимается, перехода на другую страницу не происходит - солнце светит, птички поют, тестеры и заказчик довольны - все кул. НО! это пока не появляется вертикальной прокрутки на странице и пользователь ее не прокрутит вниз до того как нажмет на такую ссылку. Потому что как только он это сделает, прокрутка магическим образом прокрутится вверх
Проблема такого подхода собственно в том, что в html по ссылкам можно переходить не только на другие страницы - но и прокручиваться к элементам текущей. Сделано это через так называемые якоря. То есть, если к примеру, в каком-то месте страницы у нас есть:
<div id="aaa">дивка</div>
и есть ссылка:
<a href="#aaa">ссылка</a>
то по клику на ссылку - произойдет прокрутка к блоку div.
Если же указано просто href="#", то почему-то, браузеры считают что нужно сделать прокрутку в самое начало страницы.
Помнится, я долго бился с этой проблемой - и таки нашел альтернативу:
<a href="javascript: ;">ссылка</a>
По клику - никуда он не переходит и никуда ничего не прокручивает :)