Вы можете изменить весь свой текущий код на это:
$(function() {
$('.dynload').live('click', function(){
$('#ajaxloader').fadeIn('normal');
var href = this.href + ' #content';
$('#content').fadeOut('fast',function() {
$(this).load(href,'', function(data) {
createMenus();
$('#ajaxloader').fadeOut('normal');
$('#content').fadeIn('fast');
Cufon.replace('h1, h2, h3, h4, .menuwrapper', { fontFamily: 'advent'});
});
});
return false;
});
});
$(createMenus);
function createMenus() {
$('#kontrollpanel .slidepanels').kwicks({
min : 42,
spacing : 3,
isVertical : true,
sticky : true,
event : 'click'
});
}
В настоящее время у вас есть несколько проблемных областей:
$('#content').load(toLoad,'',showNewContent())
//and...
$('#content').fadeIn('fast',hideLoader());
В приведенном выше примере я затухаю в загрузчике ajax, как только поступает контент, но в showNewContent
и hideLoader
с ()
это, вероятно, также вызывало ошибку Cufron). Также я превратил создание вашего меню в функцию, чтобы его можно было повторно использовать, передавая контент. Когда вы делаете $(selector)
, то, что вы на самом деле делаете, это $(selector, document)
, document
является контекстом по умолчанию (обновление: просматривая вашу фактическую страницу, это не имеет значения, так как упрощенное выше)
Вы можете передать любой контекст, который хотите, поэтому в вашем обратном вызове load
мы теперь используем data
в качестве контекста, который является только что загруженным контентом, так что он просматривает только содержимое, загружаемое для элементов, в создавать меню ... не мешая существующим меню.