Ключ здесь http://api.jquery.com/event.preventDefault/, который останавливает действие по умолчанию ваших ссылок (то есть получение страницы в атрибуте href).
Вы можете передать событие вобратный вызов click, что делает возможным вызов метода event.preventDefault ().Я немного очистил ваш код, заключил код в IIFE (http://benalman.com/news/2010/11/immediately-invoked-function-expression/), и добавил небольшой фрагмент кода, необходимый для его работы. В вашем коде тоже не хватало закрытия click()
и $(document).ready()
, поэтому я добавилэто также.
(function($) {
jQuery.fn.center = function(centerCallback) {
this.css("position", "absolute");
this.css("top", ($(window).height() - this.height()) / 2 + $(window).scrollTop() + "px");
this.css("left", ($(window).width() - this.width()) / 2 + $(window).scrollLeft() + "px");
if (centerCallback != undefined) {
centerCallback(this);
return this;
}
}
var navi_switch = true;
var content_container = 'test';
$(document).ready(function() {
$('#wrapper').center(function() {
$('#main_navigation').css("top", ( > parseInt($('#main_navigation').parent().height()) - > parseInt($('#main_navigation').height())) / 2 + "px");
});
$('#main_navigation a').click(function(e) {
var attr = $(this).attr('href');
if (navi_switch) {
$('#main_navigation').animate({
top: '0',
duration: 'slow'
}, 500, function() {
navi_switch = false;
$('#content').load(attr);
});
} else {
$('#content').load(attr);
}
e.preventDefault();
});
});
})(jQuery);
IIFE / iffy-part - это целая вещь (function($) {})(jQuery);
, обертывающая ваш код. Короче говоря, это гарантирует, что $ на самом деле является jQuery в вашем скрипте, на случай, если вы загрузите другойтакже помогает хранить функции и переменные вне пространства имен глобального окна, что очень хорошо;)