"Нельзя менять" - это крайне нездоровая хрень.
Из костылей можно сделать так:
/* Далее всё что угодно */
$(function(){
$('a[href^="#"]')
.off('click') // отменяем поставленные ранее кем-то обработчики
.click(function(){ // ставим заново общий
var sc = $(this).attr("href");
$('#hideme').hide(1000, function(){
var dn = $(sc).offset().top;
// sc - в переменную заносим информацию о том, к какому блоку надо перейти
// dn - определяем положение блока на странице
alert('Положение блока на странице по вертикали '+dn+' (Ошибочное)');
$('html, body').animate({scrollTop: dn}, 1000);
// 1000 скорость перехода в миллисекундах
$('a').remove(); // удаляем все ссылки на страницые, это точно нужно?
});
});
});
Второй вариант - поменять метод hide jquery добавив какую-нить отсебятину, например:
$.fn.hide = function(hide){
return function(speed, callback) {
this.trigger('hide');
return hide.apply(this, arguments);
}
}($.fn.hide);
и соответственно на on('hide') повесить всё нужное.