Нужно предотвратить стандартное событие перехода по ссылке
объект_событие.preventDefault(); // для W3C совместимых браузеров
event.returnValue = false; // для Internet Explorer
Просто «return false» в функции где-то не срабатывает, не помню уже где, вроде с addEventListener.
А изображения, чтобы они были подгружены заранее, должны находится в дереве, а не просто созданы через new Image().src… чтобы они не мешались, можно, например, задать для них абсолютные координаты и visibility: hidden; в CSS, но не display: none;.